func testAtomicDelete(t *testing.T, kv store.Store) { key := "testAtomicDelete" value := []byte("world") // Put the key err := kv.Put(key, value, nil) assert.NoError(t, err) // Get should return the value and an incremented index pair, err := kv.Get(key) assert.NoError(t, err) if assert.NotNil(t, pair) { assert.NotNil(t, pair.Value) } assert.Equal(t, pair.Value, value) assert.NotEqual(t, pair.LastIndex, 0) tempIndex := pair.LastIndex // AtomicDelete should fail pair.LastIndex = 6744 success, err := kv.AtomicDelete(key, pair) assert.Error(t, err) assert.False(t, success) // AtomicDelete should succeed pair.LastIndex = tempIndex success, err = kv.AtomicDelete(key, pair) assert.NoError(t, err) assert.True(t, success) // Delete a non-existent key; should fail success, err = kv.AtomicDelete(key, pair) assert.Error(t, store.ErrKeyNotFound) assert.False(t, success) }