diff options
-rw-r--r-- | nvdmirror/failsetcache.go | 25 | ||||
-rw-r--r-- | nvdmirror/failsetcache_test.go | 29 |
2 files changed, 54 insertions, 0 deletions
diff --git a/nvdmirror/failsetcache.go b/nvdmirror/failsetcache.go new file mode 100644 index 0000000..ed5679b --- /dev/null +++ b/nvdmirror/failsetcache.go @@ -0,0 +1,25 @@ +package nvdmirror + +import ( + "fmt" +) + +// Mock cache implementation that fails on Set(). +type FailSetCache byte + +// Get cache value. Always returns not found. +func (me FailSetCache) Get(_ string) (map[string]string, bool) { + return nil, false +} + +// Set cache value (fails unconditionally). +func (me FailSetCache) Set(s string, _ map[string]string) error { + return fmt.Errorf("set failed: %s", s) +} + +// Close cache. Always succeeds +func (me FailSetCache) Close() error { + return nil +} + + diff --git a/nvdmirror/failsetcache_test.go b/nvdmirror/failsetcache_test.go new file mode 100644 index 0000000..8e20a33 --- /dev/null +++ b/nvdmirror/failsetcache_test.go @@ -0,0 +1,29 @@ +package nvdmirror + +import "testing" + +func TestFailSetCache(t *testing.T) { + var data map[string]string + var cache FailSetCache + + // test get + t.Run("Get", func(t *testing.T) { + if got, ok := cache.Get("foo"); ok { + t.Errorf("got %v, exp !ok", got) + } + }) + + // test set + t.Run("Set", func(t *testing.T) { + if err := cache.Set("bar", data); err == nil { + t.Errorf("got success, exp err") + } + }) + + // test Close + t.Run("Close", func(t *testing.T) { + if err := cache.Close(); err != nil { + t.Error(err) + } + }) +} |