github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/tests/ravendb_12132_test.go (about) 1 package tests 2 3 import ( 4 "github.com/ravendb/ravendb-go-client" 5 "github.com/stretchr/testify/assert" 6 "reflect" 7 "testing" 8 ) 9 10 func canCreateClusterTransactionRequest1(t *testing.T, driver *RavenTestDriver) { 11 store := driver.getDocumentStoreMust(t) 12 { 13 session := openSessionMustWithOptions(t, store, &ravendb.SessionOptions{ 14 Database: "", 15 RequestExecutor: nil, 16 TransactionMode: ravendb.TransactionMode_ClusterWide, 17 DisableAtomicDocumentWritesInClusterWideTransaction: nil, 18 }) 19 20 var err error 21 user := &Document{ID: "this/is/my/id", Name: "Grisha"} 22 assert.NotNil(t, session.Advanced().ClusterTransaction()) 23 _, err = session.Advanced().ClusterTransaction().CreateCompareExchangeValue("usernames/ayende", user) 24 25 assert.NoError(t, err) 26 27 err = session.SaveChanges() 28 assert.NoError(t, err) 29 30 var result *ravendb.CompareExchangeValue 31 32 result, err = session.Advanced().ClusterTransaction().GetCompareExchangeValue(reflect.TypeOf(&Document{}), "usernames/ayende") 33 userFromCluster, cast := result.GetValue().(*Document) 34 assert.True(t, cast) 35 assert.NoError(t, err) 36 assert.Equal(t, user.Name, userFromCluster.Name) 37 assert.Equal(t, user.ID, userFromCluster.ID) 38 39 session.Close() 40 } 41 42 { 43 operation, err := ravendb.NewGetCompareExchangeValueOperation(reflect.TypeOf(&Document{}), "usernames/ayende") 44 assert.NoError(t, err) 45 46 err = store.Operations().Send(operation, nil) 47 assert.NoError(t, err) 48 49 result := operation.Command.Result 50 51 assert.NotNil(t, result) 52 53 docFromServer := result.Value.(*Document) 54 assert.Equal(t, "Grisha", docFromServer.Name) 55 assert.Equal(t, "this/is/my/id", docFromServer.ID) 56 } 57 58 store.Close() 59 } 60 61 func TestRavenDB12132(t *testing.T) { 62 driver := createTestDriver(t) 63 destroy := func() { destroyDriver(t, driver) } 64 defer recoverTest(t, destroy) 65 66 // matches the order of Java tests 67 canCreateClusterTransactionRequest1(t, driver) 68 }