From 450136a0c0dbd675a87d6af54f7aba5c9d079c21 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Sat, 7 May 2022 18:22:57 -0600 Subject: Implement cachedAssetStore --- srv/src/post/asset_test.go | 51 +++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 19 deletions(-) (limited to 'srv/src/post/asset_test.go') diff --git a/srv/src/post/asset_test.go b/srv/src/post/asset_test.go index 4b88000..d0cff48 100644 --- a/srv/src/post/asset_test.go +++ b/srv/src/post/asset_test.go @@ -12,14 +12,14 @@ type assetTestHarness struct { store AssetStore } -func newAssetTestHarness(t *testing.T) assetTestHarness { +func newAssetTestHarness(t *testing.T) *assetTestHarness { db := NewInMemSQLDB() t.Cleanup(func() { db.Close() }) store := NewAssetStore(db) - return assetTestHarness{ + return &assetTestHarness{ store: store, } } @@ -40,28 +40,41 @@ func (h *assetTestHarness) assertNotFound(t *testing.T, id string) { func TestAssetStore(t *testing.T) { - h := newAssetTestHarness(t) + testAssetStore := func(t *testing.T, h *assetTestHarness) { + t.Helper() - h.assertNotFound(t, "foo") - h.assertNotFound(t, "bar") + h.assertNotFound(t, "foo") + h.assertNotFound(t, "bar") - err := h.store.Set("foo", bytes.NewBufferString("FOO")) - assert.NoError(t, err) + err := h.store.Set("foo", bytes.NewBufferString("FOO")) + assert.NoError(t, err) - h.assertGet(t, "FOO", "foo") - h.assertNotFound(t, "bar") + h.assertGet(t, "FOO", "foo") + h.assertNotFound(t, "bar") - err = h.store.Set("foo", bytes.NewBufferString("FOOFOO")) - assert.NoError(t, err) + err = h.store.Set("foo", bytes.NewBufferString("FOOFOO")) + assert.NoError(t, err) + + h.assertGet(t, "FOOFOO", "foo") + h.assertNotFound(t, "bar") - h.assertGet(t, "FOOFOO", "foo") - h.assertNotFound(t, "bar") + assert.NoError(t, h.store.Delete("foo")) + h.assertNotFound(t, "foo") + h.assertNotFound(t, "bar") + + assert.NoError(t, h.store.Delete("bar")) + h.assertNotFound(t, "foo") + h.assertNotFound(t, "bar") + } - assert.NoError(t, h.store.Delete("foo")) - h.assertNotFound(t, "foo") - h.assertNotFound(t, "bar") + t.Run("sql", func(t *testing.T) { + h := newAssetTestHarness(t) + testAssetStore(t, h) + }) - assert.NoError(t, h.store.Delete("bar")) - h.assertNotFound(t, "foo") - h.assertNotFound(t, "bar") + t.Run("mem", func(t *testing.T) { + h := newAssetTestHarness(t) + h.store = NewCachedAssetStore(h.store) + testAssetStore(t, h) + }) } -- cgit v1.2.3