github.com/altipla-consulting/ravendb-go-client@v0.1.3/tests/ravendb_10566_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"sync"
     5  	"testing"
     6  
     7  	ravendb "github.com/altipla-consulting/ravendb-go-client"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func ravendb10566_shouldBeAvailable(t *testing.T, driver *RavenTestDriver) {
    12  	var err error
    13  	store := driver.getDocumentStoreMust(t)
    14  	defer store.Close()
    15  
    16  	var name string
    17  	var mu sync.Mutex
    18  
    19  	afterSaveChanges := func(event *ravendb.AfterSaveChangesEventArgs) {
    20  		meta := event.GetDocumentMetadata()
    21  
    22  		nameI, ok := meta.Get("Name")
    23  		assert.True(t, ok)
    24  
    25  		mu.Lock()
    26  		defer mu.Unlock()
    27  		name = nameI.(string)
    28  	}
    29  	store.AddAfterSaveChangesListener(afterSaveChanges)
    30  
    31  	{
    32  		session := openSessionMust(t, store)
    33  
    34  		user := &User{}
    35  		user.setName("Oren")
    36  
    37  		err = session.StoreWithID(user, "users/oren")
    38  		assert.NoError(t, err)
    39  
    40  		metadata, err := session.Advanced().GetMetadataFor(user)
    41  		assert.NoError(t, err)
    42  		metadata.Put("Name", "FooBar")
    43  
    44  		err = session.SaveChanges()
    45  		assert.NoError(t, err)
    46  
    47  		session.Close()
    48  	}
    49  
    50  	assert.Equal(t, name, "FooBar")
    51  }
    52  
    53  func TestRavenDB10566(t *testing.T) {
    54  	driver := createTestDriver(t)
    55  	destroy := func() { destroyDriver(t, driver) }
    56  	defer recoverTest(t, destroy)
    57  
    58  	// matches Java's order
    59  	ravendb10566_shouldBeAvailable(t, driver)
    60  }