github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/tests/compact_test.go (about) 1 package tests 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/ravendb/ravendb-go-client" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func compactTestCanCompactDatabase(t *testing.T, driver *RavenTestDriver) { 12 var err error 13 store := driver.getDocumentStoreMust(t) 14 defer store.Close() 15 16 { 17 newSession := openSessionMust(t, store) 18 user1 := &User{} 19 user1.setLastName("user1") 20 err = newSession.StoreWithID(user1, "users/1") 21 assert.NoError(t, err) 22 err = newSession.SaveChanges() 23 assert.NoError(t, err) 24 newSession.Close() 25 } 26 27 compactSettings := &ravendb.CompactSettings{} 28 compactSettings.DatabaseName = store.GetDatabase() 29 compactSettings.Documents = true 30 31 compactOp := ravendb.NewCompactDatabaseOperation(compactSettings) 32 operation, err := store.Maintenance().Server().SendAsync(compactOp) 33 assert.NoError(t, err) 34 35 // we can't compact in memory database but here we just test is request was send successfully 36 err = operation.WaitForCompletion() 37 msg := err.Error() 38 assert.True(t, strings.Contains(msg, "Unable to cast object of type 'PureMemoryStorageEnvironmentOptions' to type 'DirectoryStorageEnvironmentOptions'")) 39 } 40 41 func TestCompact(t *testing.T) { 42 driver := createTestDriver(t) 43 destroy := func() { destroyDriver(t, driver) } 44 defer recoverTest(t, destroy) 45 46 // follows execution order of java tests 47 compactTestCanCompactDatabase(t, driver) 48 }