github.com/altipla-consulting/ravendb-go-client@v0.1.3/tests/delete_document_command_test.go (about) 1 package tests 2 3 import ( 4 "testing" 5 6 "github.com/altipla-consulting/ravendb-go-client" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func deleteDocumentCommandTestCanDeleteDocument(t *testing.T, driver *RavenTestDriver) { 11 var err error 12 store := driver.getDocumentStoreMust(t) 13 defer store.Close() 14 15 { 16 session := openSessionMust(t, store) 17 user := &User{} 18 user.setName("Marcin") 19 err = session.StoreWithID(user, "users/1") 20 assert.NoError(t, err) 21 err = session.SaveChanges() 22 assert.NoError(t, err) 23 session.Close() 24 } 25 command := ravendb.NewDeleteDocumentCommand("users/1", nil) 26 err = store.GetRequestExecutor("").ExecuteCommand(command, nil) 27 assert.NoError(t, err) 28 { 29 session := openSessionMust(t, store) 30 var loadedUser *User 31 err = session.Load(&loadedUser, "users/1") 32 assert.NoError(t, err) 33 assert.Nil(t, loadedUser) 34 session.Close() 35 } 36 } 37 38 func deleteDocumentCommandTestCanDeleteDocumentByEtag(t *testing.T, driver *RavenTestDriver) { 39 var err error 40 store := driver.getDocumentStoreMust(t) 41 defer store.Close() 42 43 var changeVector *string 44 { 45 session := openSessionMust(t, store) 46 user := &User{} 47 user.setName("Marcin") 48 err = session.StoreWithID(user, "users/1") 49 assert.NoError(t, err) 50 err = session.SaveChanges() 51 assert.NoError(t, err) 52 changeVector, err = session.Advanced().GetChangeVectorFor(user) 53 assert.NoError(t, err) 54 session.Close() 55 } 56 57 { 58 session := openSessionMust(t, store) 59 var loadedUser *User 60 err = session.Load(&loadedUser, "users/1") 61 assert.NoError(t, err) 62 assert.NotNil(t, loadedUser) 63 loadedUser.Age = 5 64 err = session.SaveChanges() 65 assert.NoError(t, err) 66 session.Close() 67 } 68 69 command := ravendb.NewDeleteDocumentCommand("users/1", changeVector) 70 err = store.GetRequestExecutor("").ExecuteCommand(command, nil) 71 assert.Error(t, err) 72 _ = err.(*ravendb.ConcurrencyError) 73 } 74 75 func TestDeleteDocumentCommand(t *testing.T) { 76 driver := createTestDriver(t) 77 destroy := func() { destroyDriver(t, driver) } 78 defer recoverTest(t, destroy) 79 80 // follows execution order of java tests 81 deleteDocumentCommandTestCanDeleteDocument(t, driver) 82 deleteDocumentCommandTestCanDeleteDocumentByEtag(t, driver) 83 }