mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
As #69219 outlines the unit tests in `csi_client_test.go` where not testing the actual implementation of the `csiDriverClient` but was testing the fake. To fix this, we changed the `csiDriverClient` to use a `nodeClientCreator` which is responsible for creating a new `NodeClient`, a real one in prod and a fake one in the tests. The setup of the gRPC connection has been pushed into that creator. The node client uses that connection; that's transparent to the driver client. It's the responsibility of the driver client to close the connection when it is done with the node client. To achieve this, we have the node client creator return a closer which handles the connection teardown. In the tests we now also check if the driver client actually calls this closer, thus closing the gRPC connection. Closes: #69219 Co-authored-by: Rosie Bloxsom <rbloxsom@pivotal.io> Co-authored-by: Maria Ntalla <mntalla@pivotal.io>
48 lines
944 B
Go
48 lines
944 B
Go
/*
|
|
Copyright 2018 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 fake
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func NewCloser(t *testing.T) *Closer {
|
|
return &Closer{
|
|
t: t,
|
|
}
|
|
}
|
|
|
|
type Closer struct {
|
|
wasCalled bool
|
|
t *testing.T
|
|
}
|
|
|
|
func (c *Closer) Close() error {
|
|
c.wasCalled = true
|
|
return nil
|
|
}
|
|
|
|
func (c *Closer) Check() *Closer {
|
|
c.t.Helper()
|
|
|
|
if !c.wasCalled {
|
|
c.t.Error("expected closer to have been called")
|
|
}
|
|
|
|
return c
|
|
}
|