github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/inspector/check/package_test.go (about) 1 package check 2 3 import "testing" 4 5 type stubPkgManager struct { 6 installed bool 7 available bool 8 } 9 10 func (m stubPkgManager) IsInstalled(q PackageQuery) (bool, error) { 11 return m.installed, nil 12 } 13 14 func (m stubPkgManager) IsAvailable(q PackageQuery) (bool, error) { 15 return m.available, nil 16 } 17 18 func TestPackageCheck(t *testing.T) { 19 tests := []struct { 20 packageName string 21 installationDisabled bool 22 dockerInstallationDisabled bool 23 disconnectedInstallation bool 24 isInstalled bool 25 isAvailable bool 26 27 expected bool 28 errExpected bool 29 }{ 30 { 31 packageName: "somePkg", 32 installationDisabled: true, 33 isInstalled: true, 34 isAvailable: true, 35 expected: true, 36 }, 37 { 38 packageName: "somePkg", 39 installationDisabled: true, 40 isInstalled: false, 41 isAvailable: true, 42 expected: false, 43 errExpected: true, 44 }, 45 { 46 packageName: "somePkg", 47 installationDisabled: true, 48 isInstalled: false, 49 isAvailable: false, 50 expected: false, 51 errExpected: true, 52 }, 53 { 54 packageName: "somePkg", 55 installationDisabled: false, 56 isInstalled: true, 57 isAvailable: true, 58 expected: true, 59 }, 60 { 61 packageName: "somePkg", 62 installationDisabled: false, 63 isInstalled: false, 64 isAvailable: true, 65 expected: true, 66 }, 67 { 68 packageName: "somePkg", 69 installationDisabled: false, 70 isInstalled: true, 71 isAvailable: false, 72 expected: true, 73 }, 74 { 75 packageName: "somePkg", 76 installationDisabled: false, 77 isInstalled: false, 78 isAvailable: false, 79 expected: true, 80 }, 81 { 82 packageName: "somePkg", 83 installationDisabled: true, 84 dockerInstallationDisabled: true, 85 isInstalled: false, 86 isAvailable: false, 87 expected: false, 88 errExpected: true, 89 }, 90 { 91 packageName: "docker-ce", 92 installationDisabled: true, 93 dockerInstallationDisabled: true, 94 isInstalled: false, 95 isAvailable: false, 96 expected: true, 97 }, 98 { 99 packageName: "somePkg", 100 installationDisabled: false, 101 dockerInstallationDisabled: false, 102 disconnectedInstallation: true, 103 isInstalled: true, 104 isAvailable: true, 105 expected: true, 106 }, 107 { 108 packageName: "somePkg", 109 installationDisabled: false, 110 dockerInstallationDisabled: false, 111 disconnectedInstallation: true, 112 isInstalled: true, 113 isAvailable: false, 114 expected: true, 115 }, 116 { 117 packageName: "somePkg", 118 installationDisabled: false, 119 dockerInstallationDisabled: false, 120 disconnectedInstallation: true, 121 isInstalled: false, 122 isAvailable: true, 123 expected: true, 124 }, 125 { 126 packageName: "somePkg", 127 installationDisabled: true, 128 dockerInstallationDisabled: false, 129 disconnectedInstallation: true, 130 isInstalled: false, 131 isAvailable: false, 132 expected: false, 133 errExpected: true, 134 }, 135 { 136 packageName: "docker-ce", 137 installationDisabled: true, 138 dockerInstallationDisabled: true, 139 disconnectedInstallation: true, 140 isInstalled: false, 141 isAvailable: false, 142 expected: true, 143 }, 144 } 145 146 for i, test := range tests { 147 c := PackageCheck{ 148 PackageQuery: PackageQuery{test.packageName, "someVersion"}, 149 PackageManager: stubPkgManager{installed: test.isInstalled, available: test.isAvailable}, 150 InstallationDisabled: test.installationDisabled, 151 DockerInstallationDisabled: test.dockerInstallationDisabled, 152 DisconnectedInstallation: test.disconnectedInstallation, 153 } 154 ok, err := c.Check() 155 if err != nil && !test.errExpected { 156 t.Errorf("test #%d - unexpected error occurred: %v", i, err) 157 } 158 if ok != test.expected { 159 t.Errorf("Test #%d - Expected %v, but got %v", i, test.expected, ok) 160 } 161 } 162 }