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  }