Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// TLSBundleCA ca.crt
	TLSBundleCA = []byte(`-----BEGIN CERTIFICATE-----
MIICiTCCAfKgAwIBAgIJAJ5X1olt05XjMA0GCSqGSIb3DQEBCwUAMDgxCzAJBgNV
BAYTAkdPMQ8wDQYDVQQIEwZHb3BoZXIxGDAWBgNVBAoTD1Rlc3RpbmcgUk9PVCBD
QTAeFw0xNzAzMDkwMDAyMDZaFw0yNzAzMDcwMDAyMDZaMDgxCzAJBgNVBAYTAkdP
MQ8wDQYDVQQIEwZHb3BoZXIxGDAWBgNVBAoTD1Rlc3RpbmcgUk9PVCBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAw/8DN+t9XQR60jx42rsQ2WE2Dx85rb3n
GQxnKZZLNddsT8rDyxJNP18aFalbRbFlyln5fxWxZIblu9Xkm/HRhOpbSimSqo1y
uDx21NVZ1YsOvXpHby71jx3gPrrhSc/t/zikhi++6D/C6m1CiIGuiJ0GBiJxtrub
UBMXT0QtI2ECAwEAAaOBmjCBlzAdBgNVHQ4EFgQU8XG3X/YHBA6T04kdEkq6+4GV
YykwaAYDVR0jBGEwX4AU8XG3X/YHBA6T04kdEkq6+4GVYymhPKQ6MDgxCzAJBgNV
BAYTAkdPMQ8wDQYDVQQIEwZHb3BoZXIxGDAWBgNVBAoTD1Rlc3RpbmcgUk9PVCBD
QYIJAJ5X1olt05XjMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADgYEAeILv
z49+uxmPcfOZzonuOloRcpdvyjiXblYxbzz6ch8GsE7Q886FTZbvwbgLhzdwSVgG
G8WHkodDUsymVepdqAamS3f8PdCUk8xIk9mop8LgaB9Ns0/TssxDvMr3sOD2Grb3
xyWymTWMcj6uCiEBKtnUp4rPiefcvCRYZ17/hLE=
-----END CERTIFICATE-----
`)

	// TLSBundleCert ai.crt
	TLSBundleCert = []byte(`-----BEGIN CERTIFICATE-----
MIICGjCCAYOgAwIBAgIJAIIu+NOoxxM0MA0GCSqGSIb3DQEBBQUAMDgxCzAJBgNV
BAYTAkdPMQ8wDQYDVQQIEwZHb3BoZXIxGDAWBgNVBAoTD1Rlc3RpbmcgUk9PVCBD
QTAeFw0xNzAzMDkwMDAzMTRaFw0yNzAzMDcwMDAzMTRaMFExCzAJBgNVBAYTAkdP
MQ8wDQYDVQQIDAZHb3BoZXIxHDAaBgNVBAoME1Rlc3RpbmcgQ2VydGlmaWNhdGUx
EzARBgNVBAsMClRlc3RpbmcgSVAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB
AN1hWHeioo/nASvbrjwCQzXCiWiEzGkw353NxsAB54/NqDL3LXNATtiSJu8kJBrm
Ah12IFLtWLGXjGjjYlHbQWnOR6awveeXnQZukJyRWh7m/Qlt9Ho0CgZE1U+832ac
5GWVldNxW1Lz4I+W9/ehzqe8I80RS6eLEKfUFXGiW+9RAgMBAAGjEzARMA8GA1Ud
EQQIMAaHBH8AAAEwDQYJKoZIhvcNAQEFBQADgYEAdF4WQHfVdPCbgv9sxgJjcR1H
Hgw9rZ47gO1IiIhzglnLXQ6QuemRiHeYFg4kjcYBk1DJguxzDTGnUwhUXOibAB+S
zssmrkdYYvn9aUhjc3XK3tjAoDpsPpeBeTBamuUKDHoH/dNRXxerZ8vu6uPR3Pgs
5v/KCV6IAEcvNyOXMPo=
-----END CERTIFICATE-----
`)

	// TLSBundleKey ai.key
	TLSBundleKey = []byte(`-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDdYVh3oqKP5wEr2648AkM1wolohMxpMN+dzcbAAeePzagy9y1z
QE7YkibvJCQa5gIddiBS7Vixl4xo42JR20FpzkemsL3nl50GbpCckVoe5v0JbfR6
NAoGRNVPvN9mnORllZXTcVtS8+CPlvf3oc6nvCPNEUunixCn1BVxolvvUQIDAQAB
AoGBAMISrcirddGrlLZLLrKC1ULS2T0cdkqdQtwHYn4+7S5+/z42vMx1iumHLsSk
rVY7X41OWkX4trFxhvEIrc/O48bo2zw78P7flTxHy14uxXnllU8cLThE29SlUU7j
AVBNxJZMsXMlS/DowwD4CjFe+x4Pu9wZcReF2Z9ntzMpySABAkEA+iWoJCPE2JpS
y78q3HYYgpNY3gF3JqQ0SI/zTNkb3YyEIUffEYq0Y9pK13HjKtdsSuX4osTIhQkS
+UgRp6tCAQJBAOKPYTfQ2FX8ijgUpHZRuEAVaxASAS0UATiLgzXxLvOh/VC2at5x
wjOX6sD65pPz/0D8Qj52Cq6Q1TQ+377SDVECQAIy0od+yPweXxvrUjUd1JlRMjbB
TIrKZqs8mKbUQapw0bh5KTy+O1elU4MRPS3jNtBxtP25PQnuSnxmZcFTgAECQFzg
DiiFcsn9FuRagfkHExMiNJuH5feGxeFaP9WzI144v9GAllrOI6Bm3JNzx2ZLlg4b
20Qju8lIEj6yr6JYFaECQHM1VSojGRKpOl9Ox/R4yYSA9RV5Gyn00/aJNxVYyPD5
i3acL2joQm2kLD/LO8paJ4+iQdRXCOMMIpjxSNjGQjQ=
-----END RSA PRIVATE KEY-----
`)
)
    Cert generation steps
    

    # Create the CA key openssl genrsa -des3 -out ca.key 1024

    # Create the CA Cert openssl req -new -sha256 -x509 -days 3650 \

    -subj "/C=GO/ST=Gopher/O=Testing ROOT CA" \
    -key ca.key -out ca.crt
    

    # Create config cat > csr_details.txt <<-EOF

    [req] default_bits = 1024 prompt = no default_md = sha256 req_extensions = SAN distinguished_name = dn

    [ dn ] C=GO ST=Gopher O=Testing Certificate OU=Testing IP

    [SAN] subjectAltName = IP:127.0.0.1 EOF

    # Create certificate signing request openssl req -new -sha256 -nodes -newkey rsa:1024 \

    -config <( cat csr_details.txt ) \
    -keyout ia.key -out ia.csr
    

    # Create a signed certificate openssl x509 -req -days 3650 \

    -CAcreateserial \
    -extfile <( cat csr_details.txt ) \
    -extensions SAN \
    -CA ca.crt -CAkey ca.key -in ia.csr -out ia.crt
    

    # Verify openssl req -noout -text -in ia.csr openssl x509 -noout -text -in ia.crt

    Functions

    func AssertJSON

    func AssertJSON(t *testing.T, expect, actual string, msgAndArgs ...interface{}) bool

      AssertJSON verifies that the expect json string matches the actual.

      func AssertQuery

      func AssertQuery(t *testing.T, expect, actual string, msgAndArgs ...interface{}) bool

        AssertQuery verifies the expect HTTP query string matches the actual.

        func AssertURL

        func AssertURL(t *testing.T, expect, actual string, msgAndArgs ...interface{}) bool

          AssertURL verifies the expected URL is matches the actual.

          func AssertXML

          func AssertXML(t *testing.T, expect, actual string, container interface{}, msgAndArgs ...interface{}) bool

            AssertXML verifies that the expect xml string matches the actual.

            func CleanupTLSBundleFiles

            func CleanupTLSBundleFiles(files ...string) error

              CleanupTLSBundleFiles takes variadic list of files to be deleted.

              func CreateTLSBundleFiles

              func CreateTLSBundleFiles() (cert, key, ca string, err error)

                CreateTLSBundleFiles returns the temporary filenames for the certificate key, and CA PEM content. These files should be deleted when no longer needed. CleanupTLSBundleFiles can be used for this cleanup.

                func CreateTLSServer

                func CreateTLSServer(cert, key string, mux *http.ServeMux) (string, error)

                  CreateTLSServer will create the TLS server on an open port using the certificate and key. The address will be returned that the server is running on.

                  func DidPanic

                  func DidPanic(fn func()) (bool, interface{})

                    DidPanic returns if the function paniced and returns true if the function paniced.

                    func Match

                    func Match(t *testing.T, regex, expected string)

                      Match is a testing helper to test for testing error by comparing expected with a regular expression.

                      func PopEnv

                      func PopEnv(env []string)

                        PopEnv takes the list of the environment values and injects them into the process's environment variable data. Clears any existing environment values that may already exist.

                        func SprintExpectActual

                        func SprintExpectActual(expect, actual interface{}) string

                          SprintExpectActual returns a string for test failure cases when the actual value is not the same as the expected.

                          func StashEnv

                          func StashEnv(envToKeep ...string) []string

                            StashEnv stashes the current environment variables except variables listed in envToKeepx Returns an function to pop out old environment

                            Types

                            type DiscardAt

                            type DiscardAt struct{}

                              DiscardAt is an io.WriteAt that discards the requested bytes to be written

                              func (DiscardAt) WriteAt

                              func (d DiscardAt) WriteAt(p []byte, off int64) (n int, err error)

                                WriteAt discards the given []byte slice and returns len(p) bytes as having been written at the given offset. It will never return an error.

                                type EndlessReader

                                type EndlessReader struct{}

                                  EndlessReader is an io.Reader that will always return that bytes have been read.

                                  func (EndlessReader) Read

                                  func (e EndlessReader) Read(p []byte) (int, error)

                                    Read will report that it has read len(p) bytes in p. The content in the []byte will be unmodified. This will never return an error.

                                    type FakeContext

                                    type FakeContext struct {
                                    	Error  error
                                    	DoneCh chan struct{}
                                    }

                                      A FakeContext provides a simple stub implementation of a Context

                                      func (*FakeContext) Deadline

                                      func (c *FakeContext) Deadline() (deadline time.Time, ok bool)

                                        Deadline always will return not set

                                        func (*FakeContext) Done

                                        func (c *FakeContext) Done() <-chan struct{}

                                          Done returns a read channel for listening to the Done event

                                          func (*FakeContext) Err

                                          func (c *FakeContext) Err() error

                                            Err returns the error, is nil if not set.

                                            func (*FakeContext) Value

                                            func (c *FakeContext) Value(key interface{}) interface{}

                                              Value ignores the Value and always returns nil

                                              type MockCredentialsProvider

                                              type MockCredentialsProvider struct {
                                              	RetrieveFn   func(ctx context.Context) (aws.Credentials, error)
                                              	InvalidateFn func()
                                              }

                                                MockCredentialsProvider is a type that can be used to mock out credentials providers

                                                func (MockCredentialsProvider) Invalidate

                                                func (p MockCredentialsProvider) Invalidate()

                                                  Invalidate calls the InvalidateFn

                                                  func (MockCredentialsProvider) Retrieve

                                                    Retrieve calls the RetrieveFn

                                                    type ReadCloser

                                                    type ReadCloser struct {
                                                    	Size   int
                                                    	Closed bool
                                                    
                                                    	FillData func(bool, []byte, int, int)
                                                    	// contains filtered or unexported fields
                                                    }

                                                      ReadCloser is a io.ReadCloser for unit testing. Designed to test for leaks and whether a handle has been closed

                                                      func (*ReadCloser) Close

                                                      func (r *ReadCloser) Close() error

                                                        Close sets Closed to true and returns no error

                                                        func (*ReadCloser) Read

                                                        func (r *ReadCloser) Read(b []byte) (int, error)

                                                          Read will call FillData and fill it with whatever data needed. Decrements the size until zero, then return io.EOF.

                                                          type ZeroReader

                                                          type ZeroReader struct{}

                                                            ZeroReader is a io.Reader which will always write zeros to the byte slice provided.

                                                            func (*ZeroReader) Read

                                                            func (r *ZeroReader) Read(b []byte) (int, error)

                                                              Read fills the provided byte slice with zeros returning the number of bytes written.

                                                              Directories

                                                              Path Synopsis
                                                              Package unit performs initialization and validation for unit tests
                                                              Package unit performs initialization and validation for unit tests