mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 16:29:21 +00:00
Hand written unit test for exercising the mock
This commit is contained in:
parent
a0adc1bb19
commit
f076f4fa0b
150
pkg/cloudprovider/providers/gce/cloud/mock_test.go
Normal file
150
pkg/cloudprovider/providers/gce/cloud/mock_test.go
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package cloud
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
alpha "google.golang.org/api/compute/v0.alpha"
|
||||||
|
beta "google.golang.org/api/compute/v0.beta"
|
||||||
|
ga "google.golang.org/api/compute/v1"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMocks(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
// This test uses Addresses, but the logic that is generated is the same for
|
||||||
|
// other basic objects.
|
||||||
|
const region = "us-central1"
|
||||||
|
|
||||||
|
ctx := context.Background()
|
||||||
|
mock := NewMockGCE()
|
||||||
|
|
||||||
|
keyAlpha := meta.RegionalKey("key-alpha", region)
|
||||||
|
keyBeta := meta.RegionalKey("key-beta", region)
|
||||||
|
keyGA := meta.RegionalKey("key-ga", region)
|
||||||
|
key := keyAlpha
|
||||||
|
|
||||||
|
// Get not found.
|
||||||
|
if _, err := mock.AlphaAddresses().Get(ctx, *key); err == nil {
|
||||||
|
t.Errorf("AlphaAddresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
if _, err := mock.BetaAddresses().Get(ctx, *key); err == nil {
|
||||||
|
t.Errorf("BetaAddresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
if _, err := mock.Addresses().Get(ctx, *key); err == nil {
|
||||||
|
t.Errorf("Addresses().Get(%v, %v) = _, nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
// Insert.
|
||||||
|
{
|
||||||
|
obj := &alpha.Address{}
|
||||||
|
if err := mock.AlphaAddresses().Insert(ctx, *keyAlpha, obj); err != nil {
|
||||||
|
t.Errorf("AlphaAddresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
obj := &beta.Address{}
|
||||||
|
if err := mock.BetaAddresses().Insert(ctx, *keyBeta, obj); err != nil {
|
||||||
|
t.Errorf("BetaAddresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
obj := &ga.Address{}
|
||||||
|
if err := mock.Addresses().Insert(ctx, *keyGA, &ga.Address{Name: "ga"}); err != nil {
|
||||||
|
t.Errorf("Addresses().Insert(%v, %v, %v) = %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Get across versions.
|
||||||
|
if obj, err := mock.AlphaAddresses().Get(ctx, *key); err != nil {
|
||||||
|
t.Errorf("AlphaAddresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
if obj, err := mock.BetaAddresses().Get(ctx, *key); err != nil {
|
||||||
|
t.Errorf("BetaAddresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
if obj, err := mock.Addresses().Get(ctx, *key); err != nil {
|
||||||
|
t.Errorf("Addresses().Get(%v, %v) = %v, %v; want nil", ctx, key, obj, err)
|
||||||
|
}
|
||||||
|
// List across versions.
|
||||||
|
want := map[string]bool{"key-alpha": true, "key-beta": true, "key-ga": true}
|
||||||
|
{
|
||||||
|
objs, err := mock.AlphaAddresses().List(ctx, region, filter.None)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("AlphaAddresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
||||||
|
} else {
|
||||||
|
got := map[string]bool{}
|
||||||
|
for _, obj := range objs {
|
||||||
|
got[obj.Name] = true
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
objs, err := mock.BetaAddresses().List(ctx, region, filter.None)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("BetaAddresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
||||||
|
} else {
|
||||||
|
got := map[string]bool{}
|
||||||
|
for _, obj := range objs {
|
||||||
|
got[obj.Name] = true
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
objs, err := mock.Addresses().List(ctx, region, filter.None)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Addresses().List(%v, %v, %v) = %v, %v; want _, nil", ctx, region, filter.None, objs, err)
|
||||||
|
} else {
|
||||||
|
got := map[string]bool{}
|
||||||
|
for _, obj := range objs {
|
||||||
|
got[obj.Name] = true
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(got, want) {
|
||||||
|
t.Errorf("AlphaAddresses().List(); got %+v, want %+v", got, want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Delete across versions.
|
||||||
|
if err := mock.AlphaAddresses().Delete(ctx, *keyAlpha); err != nil {
|
||||||
|
t.Errorf("AlphaAddresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
||||||
|
}
|
||||||
|
if err := mock.BetaAddresses().Delete(ctx, *keyBeta); err != nil {
|
||||||
|
t.Errorf("BetaAddresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
||||||
|
}
|
||||||
|
if err := mock.Addresses().Delete(ctx, *keyGA); err != nil {
|
||||||
|
t.Errorf("Addresses().Delete(%v, %v) = %v; want nil", ctx, key, err)
|
||||||
|
}
|
||||||
|
// Delete not found.
|
||||||
|
if err := mock.AlphaAddresses().Delete(ctx, *keyAlpha); err == nil {
|
||||||
|
t.Errorf("AlphaAddresses().Delete(%v, %v) = nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
if err := mock.BetaAddresses().Delete(ctx, *keyBeta); err == nil {
|
||||||
|
t.Errorf("BetaAddresses().Delete(%v, %v) = nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
if err := mock.Addresses().Delete(ctx, *keyGA); err == nil {
|
||||||
|
t.Errorf("Addresses().Delete(%v, %v) = nil; want error", ctx, key)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user