mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 02:09:56 +00:00
Add unit tests
This commit is contained in:
parent
919058b315
commit
9bbd5043ea
@ -22,6 +22,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
|
|
||||||
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network"
|
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network"
|
||||||
@ -38,6 +39,8 @@ func TestDeleteRoute(t *testing.T) {
|
|||||||
RouteTableName: "bar",
|
RouteTableName: "bar",
|
||||||
Location: "location",
|
Location: "location",
|
||||||
},
|
},
|
||||||
|
unmanagedNodes: sets.NewString(),
|
||||||
|
nodeInformerSynced: func() bool { return true },
|
||||||
}
|
}
|
||||||
route := cloudprovider.Route{TargetNode: "node", DestinationCIDR: "1.2.3.4/24"}
|
route := cloudprovider.Route{TargetNode: "node", DestinationCIDR: "1.2.3.4/24"}
|
||||||
routeName := mapNodeNameToRouteName(route.TargetNode)
|
routeName := mapNodeNameToRouteName(route.TargetNode)
|
||||||
@ -62,6 +65,28 @@ func TestDeleteRoute(t *testing.T) {
|
|||||||
ob, found := mp[routeName]
|
ob, found := mp[routeName]
|
||||||
if found {
|
if found {
|
||||||
t.Errorf("unexpectedly found: %v that should have been deleted.", ob)
|
t.Errorf("unexpectedly found: %v that should have been deleted.", ob)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
// test delete route for unmanaged nodes.
|
||||||
|
nodeName := "node1"
|
||||||
|
nodeCIDR := "4.3.2.1/24"
|
||||||
|
cloud.unmanagedNodes.Insert(nodeName)
|
||||||
|
cloud.routeCIDRs = map[string]string{
|
||||||
|
nodeName: nodeCIDR,
|
||||||
|
}
|
||||||
|
route1 := cloudprovider.Route{
|
||||||
|
TargetNode: mapRouteNameToNodeName(nodeName),
|
||||||
|
DestinationCIDR: nodeCIDR,
|
||||||
|
}
|
||||||
|
err = cloud.DeleteRoute(context.TODO(), "cluster", &route1)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error deleting route: %v", err)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
cidr, found := cloud.routeCIDRs[nodeName]
|
||||||
|
if found {
|
||||||
|
t.Errorf("unexpected CIDR item (%q) for %s", cidr, nodeName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,6 +104,8 @@ func TestCreateRoute(t *testing.T) {
|
|||||||
RouteTableName: "bar",
|
RouteTableName: "bar",
|
||||||
Location: "location",
|
Location: "location",
|
||||||
},
|
},
|
||||||
|
unmanagedNodes: sets.NewString(),
|
||||||
|
nodeInformerSynced: func() bool { return true },
|
||||||
}
|
}
|
||||||
cache, _ := cloud.newRouteTableCache()
|
cache, _ := cloud.newRouteTableCache()
|
||||||
cloud.rtCache = cache
|
cloud.rtCache = cache
|
||||||
@ -122,6 +149,29 @@ func TestCreateRoute(t *testing.T) {
|
|||||||
if *routeInfo.NextHopIPAddress != nodeIP {
|
if *routeInfo.NextHopIPAddress != nodeIP {
|
||||||
t.Errorf("Expected IP address: %s, saw %s", nodeIP, *routeInfo.NextHopIPAddress)
|
t.Errorf("Expected IP address: %s, saw %s", nodeIP, *routeInfo.NextHopIPAddress)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// test create route for unmanaged nodes.
|
||||||
|
nodeName := "node1"
|
||||||
|
nodeCIDR := "4.3.2.1/24"
|
||||||
|
cloud.unmanagedNodes.Insert(nodeName)
|
||||||
|
cloud.routeCIDRs = map[string]string{}
|
||||||
|
route1 := cloudprovider.Route{
|
||||||
|
TargetNode: mapRouteNameToNodeName(nodeName),
|
||||||
|
DestinationCIDR: nodeCIDR,
|
||||||
|
}
|
||||||
|
err = cloud.CreateRoute(context.TODO(), "cluster", "unused", &route1)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error creating route: %v", err)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
cidr, found := cloud.routeCIDRs[nodeName]
|
||||||
|
if !found {
|
||||||
|
t.Errorf("unexpected missing item for %s", nodeName)
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
if cidr != nodeCIDR {
|
||||||
|
t.Errorf("unexpected cidr %s, saw %s", nodeCIDR, cidr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateRouteTableIfNotExists_Exists(t *testing.T) {
|
func TestCreateRouteTableIfNotExists_Exists(t *testing.T) {
|
||||||
|
@ -958,6 +958,7 @@ func getTestCloud() (az *Cloud) {
|
|||||||
nodeInformerSynced: func() bool { return true },
|
nodeInformerSynced: func() bool { return true },
|
||||||
nodeResourceGroups: map[string]string{},
|
nodeResourceGroups: map[string]string{},
|
||||||
unmanagedNodes: sets.NewString(),
|
unmanagedNodes: sets.NewString(),
|
||||||
|
routeCIDRs: map[string]string{},
|
||||||
}
|
}
|
||||||
az.DisksClient = newFakeDisksClient()
|
az.DisksClient = newFakeDisksClient()
|
||||||
az.InterfacesClient = newFakeAzureInterfacesClient()
|
az.InterfacesClient = newFakeAzureInterfacesClient()
|
||||||
|
@ -23,6 +23,8 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/Azure/go-autorest/autorest"
|
"github.com/Azure/go-autorest/autorest"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestExtractNotFound(t *testing.T) {
|
func TestExtractNotFound(t *testing.T) {
|
||||||
@ -51,3 +53,57 @@ func TestExtractNotFound(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsNodeUnmanaged(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
unmanagedNodes sets.String
|
||||||
|
node string
|
||||||
|
expected bool
|
||||||
|
expectErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "unmanaged node should return true",
|
||||||
|
unmanagedNodes: sets.NewString("node1", "node2"),
|
||||||
|
node: "node1",
|
||||||
|
expected: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "managed node should return false",
|
||||||
|
unmanagedNodes: sets.NewString("node1", "node2"),
|
||||||
|
node: "node3",
|
||||||
|
expected: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty unmanagedNodes should return true",
|
||||||
|
unmanagedNodes: sets.NewString(),
|
||||||
|
node: "node3",
|
||||||
|
expected: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "no synced informer should report error",
|
||||||
|
unmanagedNodes: sets.NewString(),
|
||||||
|
node: "node1",
|
||||||
|
expectErr: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
az := getTestCloud()
|
||||||
|
for _, test := range tests {
|
||||||
|
az.unmanagedNodes = test.unmanagedNodes
|
||||||
|
if test.expectErr {
|
||||||
|
az.nodeInformerSynced = func() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
real, err := az.IsNodeUnmanaged(test.node)
|
||||||
|
if test.expectErr {
|
||||||
|
assert.Error(t, err, test.name)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, err, test.name)
|
||||||
|
assert.Equal(t, test.expected, real, test.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user