From ec414a141d8a238356ef2be771a2853a314b348d Mon Sep 17 00:00:00 2001 From: Asklv Date: Sat, 15 Jun 2024 15:33:45 +0800 Subject: [PATCH] chore: add fake antrea client. Signed-off-by: Asklv --- hack/update-codegen-dockerized.sh | 1 + pkg/agent/client/testing/mock_client.go | 69 +++++++++++++++++++++++++ pkg/agent/monitortool/monitor_test.go | 8 +-- 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 pkg/agent/client/testing/mock_client.go diff --git a/hack/update-codegen-dockerized.sh b/hack/update-codegen-dockerized.sh index 26b77491603..5bd609240be 100755 --- a/hack/update-codegen-dockerized.sh +++ b/hack/update-codegen-dockerized.sh @@ -43,6 +43,7 @@ MOCKGEN_TARGETS=( "pkg/agent/interfacestore InterfaceStore testing" "pkg/agent/memberlist Interface testing" "pkg/agent/memberlist Memberlist ." + "pkg/agent/client AntreaClientProvider testing" "pkg/agent/multicast RouteInterface testing" "pkg/agent/types McastNetworkPolicyController testing" "pkg/agent/monitortool PacketListener testing" diff --git a/pkg/agent/client/testing/mock_client.go b/pkg/agent/client/testing/mock_client.go new file mode 100644 index 00000000000..f57a76780aa --- /dev/null +++ b/pkg/agent/client/testing/mock_client.go @@ -0,0 +1,69 @@ +// Copyright 2024 Antrea 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. +// + +// Code generated by MockGen. DO NOT EDIT. +// Source: antrea.io/antrea/pkg/agent/client (interfaces: AntreaClientProvider) +// +// Generated by this command: +// +// mockgen -copyright_file hack/boilerplate/license_header.raw.txt -destination pkg/agent/client/testing/mock_client.go -package testing antrea.io/antrea/pkg/agent/client AntreaClientProvider +// +// Package testing is a generated GoMock package. +package testing + +import ( + reflect "reflect" + + versioned "antrea.io/antrea/pkg/client/clientset/versioned" + gomock "go.uber.org/mock/gomock" +) + +// MockAntreaClientProvider is a mock of AntreaClientProvider interface. +type MockAntreaClientProvider struct { + ctrl *gomock.Controller + recorder *MockAntreaClientProviderMockRecorder +} + +// MockAntreaClientProviderMockRecorder is the mock recorder for MockAntreaClientProvider. +type MockAntreaClientProviderMockRecorder struct { + mock *MockAntreaClientProvider +} + +// NewMockAntreaClientProvider creates a new mock instance. +func NewMockAntreaClientProvider(ctrl *gomock.Controller) *MockAntreaClientProvider { + mock := &MockAntreaClientProvider{ctrl: ctrl} + mock.recorder = &MockAntreaClientProviderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockAntreaClientProvider) EXPECT() *MockAntreaClientProviderMockRecorder { + return m.recorder +} + +// GetAntreaClient mocks base method. +func (m *MockAntreaClientProvider) GetAntreaClient() (versioned.Interface, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAntreaClient") + ret0, _ := ret[0].(versioned.Interface) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetAntreaClient indicates an expected call of GetAntreaClient. +func (mr *MockAntreaClientProviderMockRecorder) GetAntreaClient() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAntreaClient", reflect.TypeOf((*MockAntreaClientProvider)(nil).GetAntreaClient)) +} diff --git a/pkg/agent/monitortool/monitor_test.go b/pkg/agent/monitortool/monitor_test.go index a0276f05c34..f2a60fe79a7 100644 --- a/pkg/agent/monitortool/monitor_test.go +++ b/pkg/agent/monitortool/monitor_test.go @@ -33,16 +33,16 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes/fake" - componentbaseconfig "k8s.io/component-base/config" "k8s.io/utils/clock" clocktesting "k8s.io/utils/clock/testing" - "antrea.io/antrea/pkg/agent/client" + clienttesting "antrea.io/antrea/pkg/agent/client/testing" "antrea.io/antrea/pkg/agent/config" monitortesting "antrea.io/antrea/pkg/agent/monitortool/testing" "antrea.io/antrea/pkg/agent/util/nettest" crdv1alpha1 "antrea.io/antrea/pkg/apis/crd/v1alpha1" fakeversioned "antrea.io/antrea/pkg/client/clientset/versioned/fake" + statsfake "antrea.io/antrea/pkg/client/clientset/versioned/fake" crdinformers "antrea.io/antrea/pkg/client/informers/externalversions" "antrea.io/antrea/pkg/util/ip" ) @@ -157,12 +157,14 @@ func newTestMonitor( ) *testMonitor { ctrl := gomock.NewController(t) clientset := fake.NewSimpleClientset(objects...) + statsClientset := statsfake.NewSimpleClientset(objects...) informerFactory := informers.NewSharedInformerFactory(clientset, 0) nodeInformer := informerFactory.Core().V1().Nodes() crdClientset := fakeversioned.NewSimpleClientset(crdObjects...) crdInformerFactory := crdinformers.NewSharedInformerFactory(crdClientset, 0) nlmInformer := crdInformerFactory.Crd().V1alpha1().NodeLatencyMonitors() - antreaClientProvider, _ := client.NewAntreaClientProvider(componentbaseconfig.ClientConnectionConfiguration{}, clientset) + antreaClientProvider := clienttesting.NewMockAntreaClientProvider(ctrl) + antreaClientProvider.EXPECT().GetAntreaClient().Return(statsClientset, nil).AnyTimes() m := NewNodeLatencyMonitor(antreaClientProvider, nodeInformer, nlmInformer, nodeConfig, trafficEncapMode) fakeClock := newFakeClock(clockT) m.clock = fakeClock