Skip to content

Commit 18f496c

Browse files
author
Terry Howe
authored
refactor: Take private memory store out of test function (oras-project#1453)
Signed-off-by: Terry Howe <[email protected]>
1 parent 3d6e3f4 commit 18f496c

File tree

1 file changed

+33
-36
lines changed

1 file changed

+33
-36
lines changed

internal/graph/graph_test.go

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,32 +19,37 @@ import (
1919
"bytes"
2020
"context"
2121
"encoding/json"
22+
"github.com/opencontainers/go-digest"
23+
"oras.land/oras-go/v2/content/memory"
2224
"reflect"
2325
"testing"
2426

25-
"github.com/opencontainers/go-digest"
2627
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
2728
"oras.land/oras-go/v2/content"
28-
"oras.land/oras-go/v2/content/memory"
2929
"oras.land/oras/internal/docker"
3030
)
3131

32-
type fetcher struct {
32+
type contentFetcher struct {
3333
content.Fetcher
3434
}
3535

36-
func TestSuccessors(t *testing.T) {
36+
func newTestFetcher(t *testing.T) (subject, config, ociImage, dockerImage, index ocispec.Descriptor, fetcher content.Fetcher) {
3737
var blobs [][]byte
38-
var descs []ocispec.Descriptor
39-
appendBlob := func(mediaType string, blob []byte) {
38+
ctx := context.Background()
39+
memoryStorage := memory.New()
40+
appendBlob := func(mediaType string, blob []byte) ocispec.Descriptor {
4041
blobs = append(blobs, blob)
41-
descs = append(descs, ocispec.Descriptor{
42+
desc := ocispec.Descriptor{
4243
MediaType: mediaType,
4344
Digest: digest.FromBytes(blob),
4445
Size: int64(len(blob)),
45-
})
46+
}
47+
if err := memoryStorage.Push(ctx, desc, bytes.NewReader(blob)); err != nil {
48+
t.Errorf("Error pushing %v\n", err)
49+
}
50+
return desc
4651
}
47-
generateImage := func(subject *ocispec.Descriptor, mediaType string, config ocispec.Descriptor, layers ...ocispec.Descriptor) {
52+
generateImage := func(subject *ocispec.Descriptor, mediaType string, config ocispec.Descriptor, layers ...ocispec.Descriptor) ocispec.Descriptor {
4853
manifest := ocispec.Manifest{
4954
MediaType: mediaType,
5055
Subject: subject,
@@ -55,40 +60,32 @@ func TestSuccessors(t *testing.T) {
5560
if err != nil {
5661
t.Fatal(err)
5762
}
58-
appendBlob(mediaType, manifestJSON)
63+
return appendBlob(mediaType, manifestJSON)
5964
}
60-
generateIndex := func(manifests ...ocispec.Descriptor) {
65+
generateIndex := func(manifests ...ocispec.Descriptor) ocispec.Descriptor {
6166
index := ocispec.Index{
6267
Manifests: manifests,
6368
}
64-
manifestJSON, err := json.Marshal(index)
69+
indexJSON, err := json.Marshal(index)
6570
if err != nil {
6671
t.Fatal(err)
6772
}
68-
appendBlob(ocispec.MediaTypeImageIndex, manifestJSON)
73+
return appendBlob(ocispec.MediaTypeImageIndex, indexJSON)
6974
}
70-
const (
71-
subject = iota
72-
config
73-
ociImage
74-
dockerImage
75-
index
76-
)
77-
appendBlob(ocispec.MediaTypeImageLayer, []byte("blob"))
75+
76+
subject = appendBlob(ocispec.MediaTypeImageLayer, []byte("blob"))
7877
imageType := "test.image"
79-
appendBlob(imageType, []byte("config content"))
80-
generateImage(&descs[subject], ocispec.MediaTypeImageManifest, descs[config])
81-
generateImage(&descs[subject], docker.MediaTypeManifest, descs[config])
82-
generateIndex(descs[subject])
83-
memory := memory.New()
84-
ctx := context.Background()
85-
for i := range descs {
86-
if err := memory.Push(ctx, descs[i], bytes.NewReader(blobs[i])); err != nil {
87-
t.Errorf("Error pushing %v\n", err)
88-
}
89-
}
90-
fetcher := &fetcher{Fetcher: memory}
78+
config = appendBlob(imageType, []byte("config content"))
79+
ociImage = generateImage(&subject, ocispec.MediaTypeImageManifest, config)
80+
dockerImage = generateImage(&subject, docker.MediaTypeManifest, config)
81+
index = generateIndex(subject)
9182

83+
return subject, config, ociImage, dockerImage, index, &contentFetcher{Fetcher: memoryStorage}
84+
}
85+
86+
func TestSuccessors(t *testing.T) {
87+
subject, config, ociImage, dockerImage, index, fetcher := newTestFetcher(t)
88+
ctx := context.Background()
9289
type args struct {
9390
ctx context.Context
9491
fetcher content.Fetcher
@@ -104,9 +101,9 @@ func TestSuccessors(t *testing.T) {
104101
}{
105102
{"should failed to get non-existent OCI image", args{ctx, fetcher, ocispec.Descriptor{MediaType: ocispec.MediaTypeImageManifest}}, nil, nil, nil, true},
106103
{"should failed to get non-existent docker image", args{ctx, fetcher, ocispec.Descriptor{MediaType: docker.MediaTypeManifest}}, nil, nil, nil, true},
107-
{"should get success of a docker image", args{ctx, fetcher, descs[dockerImage]}, nil, &descs[subject], &descs[config], false},
108-
{"should get success of an OCI image", args{ctx, fetcher, descs[ociImage]}, nil, &descs[subject], &descs[config], false},
109-
{"should get success of an index", args{ctx, fetcher, descs[index]}, []ocispec.Descriptor{descs[subject]}, nil, nil, false},
104+
{"should get success of a docker image", args{ctx, fetcher, dockerImage}, nil, &subject, &config, false},
105+
{"should get success of an OCI image", args{ctx, fetcher, ociImage}, nil, &subject, &config, false},
106+
{"should get success of an index", args{ctx, fetcher, index}, []ocispec.Descriptor{subject}, nil, nil, false},
110107
}
111108
for _, tt := range tests {
112109
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)