github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/tests/ravendb_14989_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"github.com/ravendb/ravendb-go-client"
     5  	"github.com/stretchr/testify/assert"
     6  	"strings"
     7  	"testing"
     8  )
     9  
    10  func ravendb14989_should_work(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  		name := "egor"
    21  		user := &User{
    22  			Name: &name,
    23  		}
    24  
    25  		assert.NotNil(t, session.Advanced().ClusterTransaction())
    26  
    27  		_, err := session.Advanced().ClusterTransaction().CreateCompareExchangeValue(strings.Repeat("e", 513), user)
    28  		assert.NoError(t, err)
    29  
    30  		err = session.SaveChanges()
    31  
    32  		assert.Error(t, err)
    33  
    34  		assert.True(t, strings.Contains(err.Error(), "CompareExchangeKeyTooBigException"))
    35  	}
    36  }
    37  
    38  func TestRavenDB14989(t *testing.T) {
    39  	driver := createTestDriver(t)
    40  	destroy := func() { destroyDriver(t, driver) }
    41  	defer recoverTest(t, destroy)
    42  
    43  	// matches the order of Java tests
    44  	ravendb14989_should_work(t, driver)
    45  }