github.com/altipla-consulting/ravendb-go-client@v0.1.3/tests/load_all_starting_with_test.go (about) 1 package tests 2 3 import ( 4 "reflect" 5 "testing" 6 7 ravendb "github.com/altipla-consulting/ravendb-go-client" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 type Abc struct { 12 ID string 13 } 14 15 type Xyz struct { 16 ID string 17 } 18 19 func loadAllStartingWithLoadAllStartingWith(t *testing.T, driver *RavenTestDriver) { 20 var err error 21 store := driver.getDocumentStoreMust(t) 22 defer store.Close() 23 24 doc1 := &Abc{ 25 ID: "abc/1", 26 } 27 doc2 := &Xyz{ 28 ID: "xyz/1", 29 } 30 31 { 32 session := openSessionMust(t, store) 33 err = session.Store(doc1) 34 assert.NoError(t, err) 35 err = session.Store(doc2) 36 assert.NoError(t, err) 37 err = session.SaveChanges() 38 assert.NoError(t, err) 39 } 40 41 { 42 session := openSessionMust(t, store) 43 args := &ravendb.StartsWithArgs{ 44 StartsWith: "abc/", 45 } 46 testClasses := session.Advanced().Lazily().LoadStartingWith(args) 47 48 v := map[string]*Abc{} 49 err = testClasses.GetValue(v) 50 assert.NoError(t, err) 51 assert.Equal(t, len(v), 1) 52 assert.Equal(t, v["abc/1"].ID, "abc/1") 53 54 q := session.QueryCollectionForType(reflect.TypeOf(&Xyz{})) 55 test2Classes, err := q.WaitForNonStaleResults(0).Lazily() 56 assert.NoError(t, err) 57 var v2 []*Xyz 58 err = test2Classes.GetValue(&v2) 59 assert.NoError(t, err) 60 assert.Equal(t, len(v2), 1) 61 62 assert.Equal(t, v2[0].ID, "xyz/1") 63 } 64 } 65 66 func TestLoadAllStartingWith(t *testing.T) { 67 driver := createTestDriver(t) 68 destroy := func() { destroyDriver(t, driver) } 69 defer recoverTest(t, destroy) 70 71 // matches order of Java tests 72 loadAllStartingWithLoadAllStartingWith(t, driver) 73 }