| // Copyright 2020 Google LLC. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package main |
| |
| import "testing" |
| |
| func TestDeprecatedPkgs(t *testing.T) { |
| tests := []struct { |
| name string |
| dp deprecatedPkgs |
| inName string |
| inVersion string |
| want string |
| }{ |
| { |
| name: "replacement found", |
| dp: deprecatedPkgs{"foo:v1": "example.com/foo"}, |
| inName: "foo", |
| inVersion: "v1", |
| want: "example.com/foo", |
| }, |
| { |
| name: "replacemet found with no versions specified", |
| dp: deprecatedPkgs{"foo": "example.com/foo"}, |
| inName: "foo", |
| inVersion: "v1", |
| want: "example.com/foo", |
| }, |
| { |
| name: "no replacement found, package not in map", |
| dp: deprecatedPkgs{"foo": "example.com/foo"}, |
| inName: "bar", |
| inVersion: "v1", |
| want: "", |
| }, |
| { |
| name: "no replacement found, version mismatch", |
| dp: deprecatedPkgs{"foo:v1": "example.com/foo"}, |
| inName: "foo", |
| inVersion: "v2", |
| want: "", |
| }, |
| } |
| for _, tc := range tests { |
| t.Run(tc.name, func(t *testing.T) { |
| got := tc.dp.Get(tc.inName, tc.inVersion) |
| if got != tc.want { |
| t.Errorf("deprecatedPkg.Get(%v, %v): got %q, want %q", tc.inName, tc.inVersion, got, tc.want) |
| } |
| }) |
| } |
| } |