|  | // 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) | 
|  | } | 
|  | }) | 
|  | } | 
|  | } |