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  }