github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/tests/ravendb_10566_test.go (about) 1 package tests 2 3 import ( 4 "sync" 5 "testing" 6 7 ravendb "github.com/ravendb/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 }