diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-01-04 21:57:57 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-01-05 00:01:23 +0900 |
| commit | 4897b0259edeb256a3d5cf77148758536e366e64 (patch) | |
| tree | 23c9e0ff7bbc0f49d233381e6c17b4cc357a939c /internal/pkg/net_test.go | |
| parent | d6e4f85864a1e9b2aadc2e7f47e481242d5e946a (diff) | |
internal/pkg: improve artifact interface
This moves all cache I/O code to Cache. Artifact now only contains methods for constructing their actual contents.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/net_test.go')
| -rw-r--r-- | internal/pkg/net_test.go | 92 |
1 files changed, 28 insertions, 64 deletions
diff --git a/internal/pkg/net_test.go b/internal/pkg/net_test.go index 0466a4fc..2e2e2cec 100644 --- a/internal/pkg/net_test.go +++ b/internal/pkg/net_test.go @@ -34,7 +34,7 @@ func TestHTTP(t *testing.T) { checkWithCache(t, []cacheTestCase{ {"direct", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) { var got []byte - if f, err := c.NewHTTPGet( + if f, err := pkg.NewHTTPGet( t.Context(), &client, "file:///testdata", @@ -45,15 +45,15 @@ func TestHTTP(t *testing.T) { t.Fatalf("Data: error = %v", err) } else if string(got) != testdata { t.Fatalf("Data: %x, want %x", got, testdata) - } else if gotIdent := f.ID(); gotIdent != testdataChecksum { - t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum) + } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum { + t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum) } // check direct validation wantErrMismatch := &pkg.ChecksumMismatchError{ Got: testdataChecksum, } - if f, err := c.NewHTTPGet( + if f, err := pkg.NewHTTPGet( t.Context(), &client, "file:///testdata", @@ -62,13 +62,13 @@ func TestHTTP(t *testing.T) { t.Fatalf("NewHTTPGet: error = %v", err) } else if _, err = f.Data(); !reflect.DeepEqual(err, wantErrMismatch) { t.Fatalf("Data: error = %#v, want %#v", err, wantErrMismatch) - } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) { - t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{}) + } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) { + t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{}) } // check direct response error wantErrNotFound := pkg.ResponseStatusError(http.StatusNotFound) - if f, err := c.NewHTTPGet( + if f, err := pkg.NewHTTPGet( t.Context(), &client, "file:///nonexistent", @@ -77,13 +77,13 @@ func TestHTTP(t *testing.T) { t.Fatalf("NewHTTPGet: error = %v", err) } else if _, err = f.Data(); !reflect.DeepEqual(err, wantErrNotFound) { t.Fatalf("Data: error = %#v, want %#v", err, wantErrNotFound) - } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) { - t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{}) + } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) { + t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{}) } }, pkg.MustDecode("E4vEZKhCcL2gPZ2Tt59FS3lDng-d_2SKa2i5G_RbDfwGn6EemptFaGLPUDiOa94C")}, - {"load or store", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) { - f, err := c.NewHTTPGet( + {"cure", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) { + f, err := pkg.NewHTTPGet( t.Context(), &client, "file:///testdata", @@ -97,18 +97,16 @@ func TestHTTP(t *testing.T) { "identifier", testdataChecksumString, ) - var pathname *check.Absolute - if pathname, err = f.Pathname(); err != nil { - t.Fatalf("Pathname: error = %v", err) + var ( + pathname *check.Absolute + checksum pkg.Checksum + ) + if pathname, checksum, err = c.Cure(f); err != nil { + t.Fatalf("Cure: error = %v", err) } else if !pathname.Is(wantPathname) { - t.Fatalf("Pathname: %q, want %q", pathname, wantPathname) - } - - var checksum pkg.Checksum - if checksum, err = f.Hash(); err != nil { - t.Fatalf("Hash: error = %v", err) + t.Fatalf("Cure: %q, want %q", pathname, wantPathname) } else if checksum != testdataChecksum { - t.Fatalf("Hash: %x, want %x", checksum, testdataChecksum) + t.Fatalf("Cure: %x, want %x", checksum, testdataChecksum) } var got []byte @@ -116,12 +114,12 @@ func TestHTTP(t *testing.T) { t.Fatalf("Data: error = %v", err) } else if string(got) != testdata { t.Fatalf("Data: %x, want %x", got, testdata) - } else if gotIdent := f.ID(); gotIdent != testdataChecksum { - t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum) + } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum { + t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum) } // check load from cache - if f, err = c.NewHTTPGet( + if f, err = pkg.NewHTTPGet( t.Context(), &client, "file:///testdata", @@ -132,57 +130,23 @@ func TestHTTP(t *testing.T) { t.Fatalf("Data: error = %v", err) } else if string(got) != testdata { t.Fatalf("Data: %x, want %x", got, testdata) - } else if gotIdent := f.ID(); gotIdent != testdataChecksum { - t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum) + } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum { + t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum) } // check error passthrough wantErrNotFound := pkg.ResponseStatusError(http.StatusNotFound) - if f, err = c.NewHTTPGet( + if f, err = pkg.NewHTTPGet( t.Context(), &client, "file:///nonexistent", pkg.Checksum{}, ); err != nil { t.Fatalf("NewHTTPGet: error = %v", err) - } else if _, err = f.Pathname(); !reflect.DeepEqual(err, wantErrNotFound) { + } else if _, _, err = c.Cure(f); !reflect.DeepEqual(err, wantErrNotFound) { t.Fatalf("Pathname: error = %#v, want %#v", err, wantErrNotFound) - } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) { - t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{}) - } - }, pkg.MustDecode("4WHaMvRRcCac1uAyXnEklEd2YaNQBj6rXlfMntX9GgYLij3By1znv5QYPGJHYQIH")}, - - {"store", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) { - var ( - got []byte - pathname *check.Absolute - checksum pkg.Checksum - ) - wantPathname := base.Append( - "identifier", - testdataChecksumString, - ) - if f, err := c.NewHTTPGet( - t.Context(), - &client, - "file:///testdata", - testdataChecksum, - ); err != nil { - t.Fatalf("NewHTTPGet: error = %v", err) - } else if got, err = f.Data(); err != nil { - t.Fatalf("Data: error = %v", err) - } else if string(got) != testdata { - t.Fatalf("Data: %x, want %x", got, testdata) - } else if gotIdent := f.ID(); gotIdent != testdataChecksum { - t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum) - } else if pathname, err = f.Pathname(); err != nil { - t.Fatalf("Pathname: error = %v", err) - } else if !pathname.Is(wantPathname) { - t.Fatalf("Pathname: %q, want %q", pathname, wantPathname) - } else if checksum, err = f.Hash(); err != nil { - t.Fatalf("Hash: error = %v", err) - } else if checksum != testdataChecksum { - t.Fatalf("Hash: %x, want %x", checksum, testdataChecksum) + } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) { + t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{}) } }, pkg.MustDecode("4WHaMvRRcCac1uAyXnEklEd2YaNQBj6rXlfMntX9GgYLij3By1znv5QYPGJHYQIH")}, }) |
