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  }