Added more logging to state conformance tests
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
parent
6f00a83546
commit
12d2e7852c
|
|
@ -22,6 +22,7 @@ import (
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/dapr/components-contrib/contenttype"
|
"github.com/dapr/components-contrib/contenttype"
|
||||||
"github.com/dapr/components-contrib/metadata"
|
"github.com/dapr/components-contrib/metadata"
|
||||||
|
|
@ -318,14 +319,14 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
req.Metadata = map[string]string{metadata.ContentType: scenario.contentType}
|
req.Metadata = map[string]string{metadata.ContentType: scenario.contentType}
|
||||||
}
|
}
|
||||||
err := statestore.Delete(req)
|
err := statestore.Delete(req)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err, "no error expected while deleting %s", scenario.key)
|
||||||
|
|
||||||
t.Logf("Checking value absence for %s", scenario.key)
|
t.Logf("Checking value absence for %s", scenario.key)
|
||||||
res, err := statestore.Get(&state.GetRequest{
|
res, err := statestore.Get(&state.GetRequest{
|
||||||
Key: scenario.key,
|
Key: scenario.key,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err, "no error expected while checking for absence for %s", scenario.key)
|
||||||
assert.Nil(t, res.Data)
|
assert.Nil(t, res.Data, "no data expected while checking for absence for %s", scenario.key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
@ -579,27 +580,27 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
|
|
||||||
// Check if eTag feature is listed
|
// Check if eTag feature is listed
|
||||||
features := statestore.Features()
|
features := statestore.Features()
|
||||||
assert.True(t, state.FeatureETag.IsPresent(features))
|
require.True(t, state.FeatureETag.IsPresent(features))
|
||||||
|
|
||||||
// Delete any potential object, it's important to start from a clean slate.
|
// Delete any potential object, it's important to start from a clean slate.
|
||||||
err := statestore.Delete(&state.DeleteRequest{
|
err := statestore.Delete(&state.DeleteRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Set an object.
|
// Set an object.
|
||||||
err = statestore.Set(&state.SetRequest{
|
err = statestore.Set(&state.SetRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
Value: firstValue,
|
Value: firstValue,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Validate the set.
|
// Validate the set.
|
||||||
res, err := statestore.Get(&state.GetRequest{
|
res, err := statestore.Get(&state.GetRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
|
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
assertEquals(t, firstValue, res)
|
assertEquals(t, firstValue, res)
|
||||||
etag := res.ETag
|
etag := res.ETag
|
||||||
|
|
||||||
|
|
@ -609,7 +610,7 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
Value: secondValue,
|
Value: secondValue,
|
||||||
ETag: &fakeEtag,
|
ETag: &fakeEtag,
|
||||||
})
|
})
|
||||||
assert.NotNil(t, err)
|
require.NotNil(t, err)
|
||||||
|
|
||||||
// Try and update with corect ETag, expect success.
|
// Try and update with corect ETag, expect success.
|
||||||
err = statestore.Set(&state.SetRequest{
|
err = statestore.Set(&state.SetRequest{
|
||||||
|
|
@ -617,15 +618,15 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
Value: secondValue,
|
Value: secondValue,
|
||||||
ETag: etag,
|
ETag: etag,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Validate the set.
|
// Validate the set.
|
||||||
res, err = statestore.Get(&state.GetRequest{
|
res, err = statestore.Get(&state.GetRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
assertEquals(t, secondValue, res)
|
assertEquals(t, secondValue, res)
|
||||||
assert.NotEqual(t, etag, res.ETag)
|
require.NotEqual(t, etag, res.ETag)
|
||||||
etag = res.ETag
|
etag = res.ETag
|
||||||
|
|
||||||
// Try and delete with wrong ETag, expect failure.
|
// Try and delete with wrong ETag, expect failure.
|
||||||
|
|
@ -633,19 +634,19 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
ETag: &fakeEtag,
|
ETag: &fakeEtag,
|
||||||
})
|
})
|
||||||
assert.NotNil(t, err)
|
require.NotNil(t, err)
|
||||||
|
|
||||||
// Try and delete with correct ETag, expect success.
|
// Try and delete with correct ETag, expect success.
|
||||||
err = statestore.Delete(&state.DeleteRequest{
|
err = statestore.Delete(&state.DeleteRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
ETag: etag,
|
ETag: etag,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
// Check if eTag feature is NOT listed
|
// Check if eTag feature is NOT listed
|
||||||
features := statestore.Features()
|
features := statestore.Features()
|
||||||
assert.False(t, state.FeatureETag.IsPresent(features))
|
require.False(t, state.FeatureETag.IsPresent(features))
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.HasOperation("first-write") {
|
if config.HasOperation("first-write") {
|
||||||
|
|
@ -692,26 +693,28 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
}},
|
}},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, requestSet := range requestSets {
|
for i, requestSet := range requestSets {
|
||||||
// Delete any potential object, it's important to start from a clean slate.
|
t.Run(fmt.Sprintf("request set %d", i), func(t *testing.T) {
|
||||||
err := statestore.Delete(&state.DeleteRequest{
|
// Delete any potential object, it's important to start from a clean slate.
|
||||||
Key: testKey,
|
err := statestore.Delete(&state.DeleteRequest{
|
||||||
|
Key: testKey,
|
||||||
|
})
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
|
err = statestore.Set(requestSet[0])
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
|
// Validate the set.
|
||||||
|
res, err := statestore.Get(&state.GetRequest{
|
||||||
|
Key: testKey,
|
||||||
|
})
|
||||||
|
require.Nil(t, err)
|
||||||
|
assertEquals(t, firstValue, res)
|
||||||
|
|
||||||
|
// Second write expect fail
|
||||||
|
err = statestore.Set(requestSet[1])
|
||||||
|
require.NotNil(t, err)
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
|
||||||
|
|
||||||
err = statestore.Set(requestSet[0])
|
|
||||||
assert.Nil(t, err)
|
|
||||||
|
|
||||||
// Validate the set.
|
|
||||||
res, err := statestore.Get(&state.GetRequest{
|
|
||||||
Key: testKey,
|
|
||||||
})
|
|
||||||
assert.Nil(t, err)
|
|
||||||
assertEquals(t, firstValue, res)
|
|
||||||
|
|
||||||
// Second write expect fail
|
|
||||||
err = statestore.Set(requestSet[1])
|
|
||||||
assert.NotNil(t, err)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -729,16 +732,16 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
err := statestore.Delete(&state.DeleteRequest{
|
err := statestore.Delete(&state.DeleteRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
err = statestore.Set(request)
|
err = statestore.Set(request)
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Validate the set.
|
// Validate the set.
|
||||||
res, err := statestore.Get(&state.GetRequest{
|
res, err := statestore.Get(&state.GetRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
assertEquals(t, firstValue, res)
|
assertEquals(t, firstValue, res)
|
||||||
|
|
||||||
etag := res.ETag
|
etag := res.ETag
|
||||||
|
|
@ -753,21 +756,21 @@ func ConformanceTests(t *testing.T, props map[string]string, statestore state.St
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
err = statestore.Set(request)
|
err = statestore.Set(request)
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Validate the set.
|
// Validate the set.
|
||||||
res, err = statestore.Get(&state.GetRequest{
|
res, err = statestore.Get(&state.GetRequest{
|
||||||
Key: testKey,
|
Key: testKey,
|
||||||
})
|
})
|
||||||
assert.Nil(t, err)
|
require.Nil(t, err)
|
||||||
assert.NotEqual(t, etag, res.ETag)
|
require.NotEqual(t, etag, res.ETag)
|
||||||
assertEquals(t, secondValue, res)
|
assertEquals(t, secondValue, res)
|
||||||
|
|
||||||
request.ETag = etag
|
request.ETag = etag
|
||||||
|
|
||||||
// Second write expect fail
|
// Second write expect fail
|
||||||
err = statestore.Set(request)
|
err = statestore.Set(request)
|
||||||
assert.NotNil(t, err)
|
require.NotNil(t, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue