sigs.k8s.io/kueue@v0.6.2/pkg/util/kubeversion/kubeversion_test.go (about) 1 package kubeversion 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/google/go-cmp/cmp" 8 "github.com/google/go-cmp/cmp/cmpopts" 9 "k8s.io/apimachinery/pkg/runtime" 10 versionutil "k8s.io/apimachinery/pkg/util/version" 11 "k8s.io/apimachinery/pkg/version" 12 13 fakediscovery "k8s.io/client-go/discovery/fake" 14 fakeclientset "k8s.io/client-go/kubernetes/fake" 15 kubetesting "k8s.io/client-go/testing" 16 ) 17 18 // FetchServerVersion gets API server version 19 func TestFetchServerVersion(t *testing.T) { 20 fakeClient := fakeclientset.NewSimpleClientset() 21 fakeDiscovery, ok := fakeClient.Discovery().(*fakediscovery.FakeDiscovery) 22 if !ok { 23 t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") 24 } 25 fakeDiscovery.FakedServerVersion = &version.Info{ 26 GitVersion: "v1.0.0", 27 } 28 29 fetcher := NewServerVersionFetcher(fakeDiscovery) 30 _ = fetcher.FetchServerVersion() 31 wanted := versionutil.MustParseGeneric("v1.0.0").String() 32 if fetcher.serverVersion.String() != wanted { 33 t.Errorf("Unexpected result, want %v", wanted) 34 } 35 } 36 37 func TestFetchServerVersionWithError(t *testing.T) { 38 expectedError := errors.New("an error occurred") 39 40 fakeClient := fakeclientset.NewSimpleClientset() 41 fakeDiscovery, ok := fakeClient.Discovery().(*fakediscovery.FakeDiscovery) 42 if !ok { 43 t.Fatalf("couldn't convert Discovery() to *FakeDiscovery") 44 } 45 fakeDiscovery.PrependReactor("*", "*", func(action kubetesting.Action) (handled bool, ret runtime.Object, err error) { 46 return true, nil, expectedError 47 }) 48 err := NewServerVersionFetcher(fakeDiscovery).FetchServerVersion() 49 if diff := cmp.Diff(expectedError, err, cmpopts.EquateErrors()); diff != "" { 50 t.Errorf("Unexpected result (-want,+got):\n%s", diff) 51 } 52 }