| 25 | } |
| 26 | |
| 27 | func testImageCache(t *testing.T, when spec.G, it spec.S) { |
| 28 | when("#NewImageCache", func() { |
| 29 | var dockerClient *client.Client |
| 30 | |
| 31 | it.Before(func() { |
| 32 | var err error |
| 33 | dockerClient, err = client.New(client.FromEnv) |
| 34 | h.AssertNil(t, err) |
| 35 | }) |
| 36 | |
| 37 | when("#Name", func() { |
| 38 | it("should return the image reference used in intialization", func() { |
| 39 | refName := "gcr.io/my/repo:tag" |
| 40 | ref, err := name.ParseReference(refName, name.WeakValidation) |
| 41 | h.AssertNil(t, err) |
| 42 | subject := cache.NewImageCache(ref, dockerClient) |
| 43 | actual := subject.Name() |
| 44 | if actual != refName { |
| 45 | t.Fatalf("Incorrect cache name expected %s, got %s", refName, actual) |
| 46 | } |
| 47 | }) |
| 48 | }) |
| 49 | |
| 50 | it("resolves implied tag", func() { |
| 51 | ref, err := name.ParseReference("my/repo:latest", name.WeakValidation) |
| 52 | h.AssertNil(t, err) |
| 53 | subject := cache.NewImageCache(ref, dockerClient) |
| 54 | |
| 55 | ref, err = name.ParseReference("my/repo", name.WeakValidation) |
| 56 | h.AssertNil(t, err) |
| 57 | expected := cache.NewImageCache(ref, dockerClient) |
| 58 | |
| 59 | h.AssertEq(t, subject.Name(), expected.Name()) |
| 60 | }) |
| 61 | |
| 62 | it("resolves implied registry", func() { |
| 63 | ref, err := name.ParseReference("index.docker.io/my/repo", name.WeakValidation) |
| 64 | h.AssertNil(t, err) |
| 65 | subject := cache.NewImageCache(ref, dockerClient) |
| 66 | ref, err = name.ParseReference("my/repo", name.WeakValidation) |
| 67 | h.AssertNil(t, err) |
| 68 | expected := cache.NewImageCache(ref, dockerClient) |
| 69 | if subject.Name() != expected.Name() { |
| 70 | t.Fatalf("The same repo name should result in the same image") |
| 71 | } |
| 72 | }) |
| 73 | }) |
| 74 | |
| 75 | when("#Type", func() { |
| 76 | var ( |
| 77 | dockerClient client.APIClient |
| 78 | ) |
| 79 | |
| 80 | it.Before(func() { |
| 81 | var err error |
| 82 | dockerClient, err = client.New(client.FromEnv) |
| 83 | h.AssertNil(t, err) |
| 84 | }) |