cache: Define an interface for cache, remove global state

Signed-off-by: Simarpreet Singh <simar@linux.com>
This commit is contained in:
Simarpreet Singh
2019-11-18 22:03:04 -08:00
parent d993110d96
commit 24c612e166
5 changed files with 59 additions and 34 deletions

View File

@@ -3,6 +3,7 @@ package docker
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
@@ -11,6 +12,8 @@ import (
"strings"
"testing"
"github.com/aquasecurity/fanal/cache"
"github.com/docker/docker/client"
"github.com/stretchr/testify/assert"
@@ -201,12 +204,19 @@ func TestDockerExtractor_SaveLocalImage(t *testing.T) {
c, err := client.NewClientWithOpts(client.WithHost(ts.URL))
assert.NoError(t, err)
d := DockerExtractor{
// setup cache
tempCacheDir, _ := ioutil.TempDir("", "TestDockerExtractor_SaveLocalImage-*")
defer func() {
_ = os.RemoveAll(tempCacheDir)
}()
de := DockerExtractor{
Option: types.DockerOption{},
Client: c,
Cache: cache.Initialize(tempCacheDir),
}
r, err := d.SaveLocalImage(context.TODO(), "fooimage")
r, err := de.SaveLocalImage(context.TODO(), "fooimage")
assert.NotNil(t, r)
assert.NoError(t, err)
}