From 0536a4e40c273a89e75cde3295e1ef6647fbbd04 Mon Sep 17 00:00:00 2001 From: Timo Reimann Date: Sat, 22 Oct 2022 00:47:04 +0200 Subject: [PATCH 1/2] Add tests Kubernetes-commit: fc8b4657c18a6e58b2587060ad3c862d3d2ae262 --- util/workqueue/testing/queue.go | 53 +++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 util/workqueue/testing/queue.go diff --git a/util/workqueue/testing/queue.go b/util/workqueue/testing/queue.go new file mode 100644 index 00000000..03368ae1 --- /dev/null +++ b/util/workqueue/testing/queue.go @@ -0,0 +1,53 @@ +/* +Copyright 2022 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 testing + +import ( + "time" + + "k8s.io/client-go/util/workqueue" +) + +// SpyWorkQueue implements a work queue and adds the ability to inspect processed +// items for testing purposes. +type SpyWorkQueue struct { + workqueue.RateLimitingInterface + items []SpyQueueItem +} + +// SpyQueueItem represents an item that was being processed. +type SpyQueueItem struct { + Key interface{} + // Delay represents the delayed duration if and only if AddAfter was invoked. + Delay time.Duration +} + +// AddAfter is like workqueue.RateLimitingInterface.AddAfter but records the +// added key and delay internally. +func (f *SpyWorkQueue) AddAfter(key interface{}, delay time.Duration) { + f.items = append(f.items, SpyQueueItem{ + Key: key, + Delay: delay, + }) + + f.RateLimitingInterface.AddAfter(key, delay) +} + +// GetItems returns all items that were recorded. +func (f *SpyWorkQueue) GetItems() []SpyQueueItem { + return f.items +} From d3003795b3baf42f2289ffa1096b116a35a8ffff Mon Sep 17 00:00:00 2001 From: Timo Reimann Date: Wed, 9 Nov 2022 07:32:40 +0100 Subject: [PATCH 2/2] Localize SpyWorkQueue to cloud-provider for now Kubernetes-commit: 208af2d1d83488de933977849581207149b829ee --- util/workqueue/testing/queue.go | 53 --------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 util/workqueue/testing/queue.go diff --git a/util/workqueue/testing/queue.go b/util/workqueue/testing/queue.go deleted file mode 100644 index 03368ae1..00000000 --- a/util/workqueue/testing/queue.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright 2022 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 testing - -import ( - "time" - - "k8s.io/client-go/util/workqueue" -) - -// SpyWorkQueue implements a work queue and adds the ability to inspect processed -// items for testing purposes. -type SpyWorkQueue struct { - workqueue.RateLimitingInterface - items []SpyQueueItem -} - -// SpyQueueItem represents an item that was being processed. -type SpyQueueItem struct { - Key interface{} - // Delay represents the delayed duration if and only if AddAfter was invoked. - Delay time.Duration -} - -// AddAfter is like workqueue.RateLimitingInterface.AddAfter but records the -// added key and delay internally. -func (f *SpyWorkQueue) AddAfter(key interface{}, delay time.Duration) { - f.items = append(f.items, SpyQueueItem{ - Key: key, - Delay: delay, - }) - - f.RateLimitingInterface.AddAfter(key, delay) -} - -// GetItems returns all items that were recorded. -func (f *SpyWorkQueue) GetItems() []SpyQueueItem { - return f.items -}