Documentation

Overview

    Package testutil contains shared test utilities for the Pinniped project.

    As of right now, it is more or less a dumping ground for our test utilities.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func CreateCertificate

    func CreateCertificate(notBefore, notAfter time.Time) ([]byte, []byte, error)

      CreateCertificate creates a certificate with the provided time bounds, and returns the PEM representation of the certificate and its private key. The returned certificate is capable of signing child certificates.

      func RequireEqualContentType

      func RequireEqualContentType(t *testing.T, actual string, expected string)

      func RequireNumberOfSecretsMatchingLabelSelector

      func RequireNumberOfSecretsMatchingLabelSelector(t *testing.T, secrets v1.SecretInterface, labelSet labels.Set, expectedNumberOfSecrets int)

      func RequireSecurityHeaders

      func RequireSecurityHeaders(t *testing.T, response *httptest.ResponseRecorder)

      func RequireTimeInDelta

      func RequireTimeInDelta(t *testing.T, t1 time.Time, t2 time.Time, delta time.Duration)

      func SHA256

      func SHA256(s string) string

        SHA256 returns the base64 URL encoding of the SHA256 sum of the provided string.

        func TLSTestServer

        func TLSTestServer(t *testing.T, handler http.HandlerFunc) (caBundlePEM string, url string)

          TLSTestServer starts a test server listening on a local port using a test CA. It returns the PEM CA bundle and the URL of the listening server. The lifetime of the server is bound to the provided *testing.T.

          func TempDir

          func TempDir(t *testing.T) string

          Types

          type ErrorWriter

          type ErrorWriter struct {
          	ReturnError error
          }

            ErrorWriter implements io.Writer by returning a fixed error.

            func (*ErrorWriter) Write

            func (e *ErrorWriter) Write([]byte) (int, error)

            type ObservableWithInformerOption

            type ObservableWithInformerOption struct {
            	// contains filtered or unexported fields
            }

            func NewObservableWithInformerOption

            func NewObservableWithInformerOption() *ObservableWithInformerOption

            func (*ObservableWithInformerOption) GetFilterForInformer

            func (*ObservableWithInformerOption) WithInformer

            type ObservableWithInitialEventOption

            type ObservableWithInitialEventOption struct {
            	// contains filtered or unexported fields
            }

            func NewObservableWithInitialEventOption

            func NewObservableWithInitialEventOption() *ObservableWithInitialEventOption

            func (*ObservableWithInitialEventOption) GetInitialEventKey

            func (i *ObservableWithInitialEventOption) GetInitialEventKey() *controllerlib.Key

            func (*ObservableWithInitialEventOption) WithInitialEvent

            type RoundTrip

            type RoundTrip struct {
            	MutateRequests, MutateResponses []func(kubeclient.Object) error
            	// contains filtered or unexported fields
            }

              RoundTrip is an implementation of kubeclient.RoundTrip that is easy to use in tests.

              func (*RoundTrip) MutateRequest

              func (rt *RoundTrip) MutateRequest(fn func(kubeclient.Object) error)

              func (*RoundTrip) MutateResponse

              func (rt *RoundTrip) MutateResponse(fn func(kubeclient.Object) error)

              func (*RoundTrip) Namespace

              func (rt *RoundTrip) Namespace() string

              func (*RoundTrip) NamespaceScoped

              func (rt *RoundTrip) NamespaceScoped() bool

              func (*RoundTrip) Resource

              func (rt *RoundTrip) Resource() schema.GroupVersionResource

              func (*RoundTrip) Subresource

              func (rt *RoundTrip) Subresource() string

              func (*RoundTrip) Verb

              func (rt *RoundTrip) Verb() kubeclient.Verb

              func (*RoundTrip) WithNamespace

              func (rt *RoundTrip) WithNamespace(namespace string) *RoundTrip

              func (*RoundTrip) WithResource

              func (rt *RoundTrip) WithResource(resource schema.GroupVersionResource) *RoundTrip

              func (*RoundTrip) WithSubresource

              func (rt *RoundTrip) WithSubresource(subresource string) *RoundTrip

              func (*RoundTrip) WithVerb

              func (rt *RoundTrip) WithVerb(verb kubeclient.Verb) *RoundTrip

              type TranscriptLogMessage

              type TranscriptLogMessage struct {
              	Level   string
              	Message string
              }

              type TranscriptLogger

              type TranscriptLogger struct {
              	// contains filtered or unexported fields
              }

              func NewTranscriptLogger

              func NewTranscriptLogger(t *testing.T) *TranscriptLogger

              func (*TranscriptLogger) Enabled

              func (*TranscriptLogger) Enabled() bool

              func (*TranscriptLogger) Error

              func (log *TranscriptLogger) Error(_ error, msg string, _ ...interface{})

              func (*TranscriptLogger) Info

              func (log *TranscriptLogger) Info(msg string, keysAndValues ...interface{})

              func (*TranscriptLogger) Transcript

              func (log *TranscriptLogger) Transcript() []TranscriptLogMessage

              func (*TranscriptLogger) V

              func (log *TranscriptLogger) V(_ int) logr.Logger

              func (*TranscriptLogger) WithName

              func (log *TranscriptLogger) WithName(_ string) logr.Logger

              func (*TranscriptLogger) WithValues

              func (log *TranscriptLogger) WithValues(_ ...interface{}) logr.Logger

              type ValidCert

              type ValidCert struct {
              	// contains filtered or unexported fields
              }

              func ValidateCertificate

              func ValidateCertificate(t *testing.T, caPEM string, certPEM string) *ValidCert

                ValidateCertificate validates a certificate and provides an object for asserting properties of the certificate.

                func (*ValidCert) RequireCommonName

                func (v *ValidCert) RequireCommonName(commonName string)

                  RequireCommonName asserts that the certificate contains the provided commonName.

                  func (*ValidCert) RequireDNSName

                  func (v *ValidCert) RequireDNSName(expectDNSName string)

                    RequireDNSName asserts that the certificate matches the provided DNS name.

                    func (*ValidCert) RequireLifetime

                    func (v *ValidCert) RequireLifetime(expectNotBefore time.Time, expectNotAfter time.Time, delta time.Duration)

                      RequireLifetime asserts that the lifetime of the certificate matches the expected timestamps.

                      func (*ValidCert) RequireMatchesPrivateKey

                      func (v *ValidCert) RequireMatchesPrivateKey(keyPEM string)

                        RequireMatchesPrivateKey asserts that the public key in the certificate matches the provided private key.

                        Directories

                        Path Synopsis
                        Package fakekubeapi contains a *very* simple httptest.Server that can be used to stand in for a real Kube API server in tests.
                        Package fakekubeapi contains a *very* simple httptest.Server that can be used to stand in for a real Kube API server in tests.
                        Package testlogger implements a logr.Logger suitable for writing test assertions.
                        Package testlogger implements a logr.Logger suitable for writing test assertions.