github.com/yunabe/lgo@v0.0.0-20190709125917-42c42d410fdf/cmd/install/install_test.go (about) 1 package install 2 3 import ( 4 "reflect" 5 "sort" 6 "testing" 7 ) 8 9 func TestIsStdPkg(t *testing.T) { 10 tests := []struct { 11 path string 12 want bool 13 }{ 14 {"os", true}, 15 {"os/exec", true}, 16 {"os/...", true}, 17 {"github.com/yunabe/lgo", false}, 18 {"github.com/yunabe/...", false}, 19 } 20 for _, tc := range tests { 21 got := IsStdPkg(tc.path) 22 if got != tc.want { 23 t.Errorf("IsStdPkg(%q) = %v; want %v", tc.path, got, tc.want) 24 } 25 } 26 } 27 28 func TestGetPackageStandard(t *testing.T) { 29 si := NewSOInstaller("") 30 pkg, err := si.getPackage("os") 31 if err != nil { 32 t.Fatal(err) 33 } 34 if pkg.ImportPath != "os" { 35 t.Errorf("pkg.ImportPath = %v; want \"os\"", pkg.ImportPath) 36 } 37 if !pkg.Standard { 38 t.Error("pkg.Standard = false; want true") 39 } 40 } 41 42 func TestGetPackage3P(t *testing.T) { 43 si := NewSOInstaller("") 44 core := "github.com/yunabe/lgo/core" 45 pkg, err := si.getPackage(core) 46 if err != nil { 47 t.Fatal(err) 48 } 49 if pkg.ImportPath != core { 50 t.Errorf("pkg.ImportPath = %v; want %q", pkg.ImportPath, core) 51 } 52 if pkg.Standard { 53 t.Error("pkg.Standard = true; want false") 54 } 55 } 56 57 func TestGetPackageList(t *testing.T) { 58 si := NewSOInstaller("") 59 pkgs, err := si.getPackageList("os/...") 60 if err != nil { 61 t.Fatal(err) 62 } 63 var paths []string 64 for _, pkg := range pkgs { 65 paths = append(paths, pkg.ImportPath) 66 } 67 sort.Strings(paths) 68 want := []string{"os", "os/exec", "os/signal", "os/user"} 69 if !reflect.DeepEqual(paths, want) { 70 t.Errorf("got %v, want %v", paths, want) 71 } 72 }