find a dir that doesn't contain any text files
(t *testing.T)
| 790 | |
| 791 | // find a dir that doesn't contain any text files |
| 792 | func TestQueryDirWithLogicalNotConstraint(t *testing.T) { |
| 793 | testQuery(t, func(qt *queryTest) { |
| 794 | id := qt.id |
| 795 | fileRef1, _ := id.UploadFile("some-stuff.txt", "hello", time.Unix(123, 0)) |
| 796 | qt.t.Logf("fileRef1 = %q", fileRef1) |
| 797 | fileRef2, _ := id.UploadFile("more-stuff.txt", "world", time.Unix(456, 0)) |
| 798 | qt.t.Logf("fileRef2 = %q", fileRef2) |
| 799 | dirRef1 := id.UploadDir("somedir", []blob.Ref{fileRef1, fileRef2}, time.Unix(789, 0)) |
| 800 | qt.t.Logf("dirRef1 = %q", dirRef1) |
| 801 | p1 := id.NewPlannedPermanode("1") |
| 802 | id.SetAttribute(p1, "camliContent", dirRef1.String()) |
| 803 | |
| 804 | fileRef3, _ := id.UploadFile("other-file", "hellooooo", time.Unix(101112, 0)) |
| 805 | qt.t.Logf("fileRef3 = %q", fileRef3) |
| 806 | dirRef2 := id.UploadDir("anotherdir", []blob.Ref{fileRef3}, time.Unix(181112, 0)) |
| 807 | qt.t.Logf("dirRef2 = %q", dirRef2) |
| 808 | p2 := id.NewPlannedPermanode("2") |
| 809 | id.SetAttribute(p2, "camliContent", dirRef2.String()) |
| 810 | |
| 811 | sq := &SearchQuery{ |
| 812 | Constraint: &Constraint{ |
| 813 | Dir: &DirConstraint{ |
| 814 | Contains: &Constraint{ |
| 815 | Logical: &LogicalConstraint{ |
| 816 | A: &Constraint{ |
| 817 | File: &FileConstraint{ |
| 818 | FileName: &StringConstraint{ |
| 819 | HasSuffix: ".txt", |
| 820 | }, |
| 821 | }, |
| 822 | }, |
| 823 | Op: "not", |
| 824 | }, |
| 825 | }, |
| 826 | }, |
| 827 | }, |
| 828 | } |
| 829 | qt.wantRes(sq, dirRef2) |
| 830 | }) |
| 831 | } |
| 832 | |
| 833 | // find permanode with a dir that contains a certain file or dir |
| 834 | func TestQueryDirWithFileOrDirConstraint(t *testing.T) { |
nothing calls this directly
no test coverage detected