+++ /dev/null
-package imports
-
-import (
- "fmt"
- "reflect"
- "sort"
- "testing"
-)
-
-func TestDirectoryPackageInfoReachedStatus(t *testing.T) {
- tests := []struct {
- info directoryPackageInfo
- target directoryPackageStatus
- wantStatus bool
- wantError bool
- }{
- {
- info: directoryPackageInfo{
- status: directoryScanned,
- err: nil,
- },
- target: directoryScanned,
- wantStatus: true,
- },
- {
- info: directoryPackageInfo{
- status: directoryScanned,
- err: fmt.Errorf("error getting to directory scanned"),
- },
- target: directoryScanned,
- wantStatus: true,
- wantError: true,
- },
- {
- info: directoryPackageInfo{},
- target: directoryScanned,
- wantStatus: false,
- },
- }
-
- for _, tt := range tests {
- gotStatus, gotErr := tt.info.reachedStatus(tt.target)
- if gotErr != nil {
- if !tt.wantError {
- t.Errorf("unexpected error: %s", gotErr)
- }
- continue
- }
-
- if tt.wantStatus != gotStatus {
- t.Errorf("reached status expected: %v, got: %v", tt.wantStatus, gotStatus)
- }
- }
-}
-
-func TestModCacheInfo(t *testing.T) {
- m := &dirInfoCache{
- dirs: make(map[string]*directoryPackageInfo),
- }
-
- dirInfo := []struct {
- dir string
- info directoryPackageInfo
- }{
- {
- dir: "mypackage",
- info: directoryPackageInfo{
- status: directoryScanned,
- dir: "mypackage",
- nonCanonicalImportPath: "example.com/mypackage",
- },
- },
- {
- dir: "bad package",
- info: directoryPackageInfo{
- status: directoryScanned,
- err: fmt.Errorf("bad package"),
- },
- },
- {
- dir: "mypackage/other",
- info: directoryPackageInfo{
- dir: "mypackage/other",
- nonCanonicalImportPath: "example.com/mypackage/other",
- },
- },
- }
-
- for _, d := range dirInfo {
- m.Store(d.dir, d.info)
- }
-
- for _, d := range dirInfo {
- val, ok := m.Load(d.dir)
- if !ok {
- t.Errorf("directory not loaded: %s", d.dir)
- }
-
- if !reflect.DeepEqual(d.info, val) {
- t.Errorf("expected: %v, got: %v", d.info, val)
- }
- }
-
- var wantKeys []string
- for _, d := range dirInfo {
- wantKeys = append(wantKeys, d.dir)
- }
- sort.Strings(wantKeys)
-
- gotKeys := m.Keys()
- sort.Strings(gotKeys)
-
- if len(gotKeys) != len(wantKeys) {
- t.Errorf("different length of keys. expected: %d, got: %d", len(wantKeys), len(gotKeys))
- }
-
- for i, want := range wantKeys {
- if want != gotKeys[i] {
- t.Errorf("%d: expected %s, got %s", i, want, gotKeys[i])
- }
- }
-}