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  }