testutil

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 15, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFileStateDB

func NewFileStateDB(t *testing.T) *sql.DB

NewFileStateDB creates a file-backed state DB opened like production (WAL, busy timeout, multiple connections) with migrations applied. Use it for tests that need real write-lock contention.

func NewMeteringDB

func NewMeteringDB(t *testing.T) *sql.DB

NewMeteringDB creates a fresh in-memory SQLite database with all metering migrations applied. The returned *sql.DB is closed automatically when the test ends. Uses a unique database name to avoid shared-cache collisions with NewStateDB when both are used in the same test.

func NewNotFoundError

func NewNotFoundError(containerID string) error

NewNotFoundError returns an error shaped like the real Docker client's missing-container error: wrapped with %w around an errdefs NotFound.

func NewStateDB

func NewStateDB(t *testing.T) *sql.DB

NewStateDB creates a fresh in-memory SQLite database with all state migrations applied. The returned *sql.DB is closed automatically when the test ends.

Types

type MockDockerClient

type MockDockerClient struct {

	// EnsureNetwork
	EnsureNetworkFn           func(ctx context.Context, name string) (string, error)
	EnsureNetworkCalls        []string // network names passed
	EnsureIngressNetworkFn    func(ctx context.Context, name string) (string, error)
	EnsureIngressNetworkCalls []string // dedicated routed-workload network names

	// ConnectNetwork
	ConnectNetworkFn         func(ctx context.Context, networkID, containerID string) error
	ConnectNetworkCalls      [][2]string // [networkID, containerID] pairs
	ConnectNetworkAliasFn    func(ctx context.Context, networkID, containerID, alias string) error
	ConnectNetworkAliasCalls [][3]string // [networkID, containerID, alias]

	// NetworkDisconnect
	NetworkDisconnectFn    func(ctx context.Context, networkID, containerID string) error
	NetworkDisconnectCalls [][2]string // [networkID, containerID] pairs

	// NetworkList
	NetworkListFn       func(ctx context.Context) ([]docker.NetworkInfo, error)
	NetworkListCalls    int
	NetworkInspectFn    func(ctx context.Context, networkID string) (docker.NetworkInfo, error)
	NetworkInspectCalls []string

	// RemoveNetwork
	RemoveNetworkFn    func(ctx context.Context, networkID string) error
	RemoveNetworkCalls []string // network IDs removed

	// RunContainer
	RunContainerFn    func(ctx context.Context, tenantID, serviceID, img string, port int, envVars map[string]string, extraLabels map[string]string, limits *docker.ResourceLimits) (string, error)
	RunContainerCalls int

	// StopContainer
	StopContainerFn    func(ctx context.Context, containerID string) error
	StopContainerCalls []string // containerIDs stopped

	// StartContainer
	StartContainerFn    func(ctx context.Context, containerID string) error
	StartContainerCalls []string // containerIDs started

	// RestartContainer
	RestartContainerFn    func(ctx context.Context, containerID string) error
	RestartContainerCalls []string // containerIDs restarted

	// RemoveContainer
	RemoveContainerFn    func(ctx context.Context, containerID string) error
	RemoveContainerCalls []string // containerIDs removed

	// LogsContainer
	LogsContainerFn    func(ctx context.Context, containerID string, follow bool, tail int) (io.ReadCloser, error)
	LogsContainerCalls []string // containerIDs whose logs were requested

	// InspectContainer
	InspectContainerFn    func(ctx context.Context, containerID string) (*docker.ContainerInfo, error)
	InspectContainerCalls []string // containerIDs inspected

	// PullImage
	PullImageFn    func(ctx context.Context, img string) error
	PullImageCalls []string // images pulled

	// ImageExists (default: false, so deploys pull)
	ImageExistsFn func(ctx context.Context, img string) (bool, error)

	// TagImage
	TagImageFn    func(ctx context.Context, source, target string) error
	TagImageCalls [][2]string // [source, target] pairs

	// RemoveImage
	RemoveImageFn    func(ctx context.Context, imageRef string) error
	RemoveImageCalls []string

	// ListContainersByLabel
	ListContainersByLabelFn    func(ctx context.Context, label, value string) ([]string, error)
	ListContainersByLabelCalls int

	// GetContainerLabels
	GetContainerLabelsFn    func(ctx context.Context, containerID string) map[string]string
	GetContainerLabelsCalls []string // containerIDs queried

	// GetContainerName
	GetContainerNameFn    func(ctx context.Context, containerID string) string
	GetContainerNameCalls []string // containerIDs queried

	// VerifyGVisorRuntime
	VerifyGVisorRuntimeFn    func(ctx context.Context) error
	VerifyGVisorRuntimeCalls int

	// CreateVolume
	CreateVolumeFn    func(ctx context.Context, name string) error
	CreateVolumeCalls []string // volume names created

	// RemoveVolume
	RemoveVolumeFn    func(ctx context.Context, name string) error
	RemoveVolumeCalls []string // volume names removed

	// RemoveVolumeSafe
	RemoveVolumeSafeFn    func(ctx context.Context, name string) error
	RemoveVolumeSafeCalls []string // volume names removed

	// WipeVolume
	WipeVolumeFn    func(ctx context.Context, name string) error
	WipeVolumeCalls []string // volume names wiped

	// RunDatabase
	RunDatabaseFn    func(ctx context.Context, cfg docker.RunDatabaseConfig) (string, error)
	RunDatabaseCalls int

	// StopAndRemoveByName
	StopAndRemoveByNameFn    func(ctx context.Context, name string) error
	StopAndRemoveByNameCalls []string // container names

	// PruneDanglingImages
	PruneDanglingImagesFn    func(ctx context.Context) (int, error)
	PruneDanglingImagesCalls int

	PruneAnonymousVolumesFn    func(ctx context.Context) (int, error)
	PruneAnonymousVolumesCalls int
	ListImagesFn               func(ctx context.Context) ([]docker.ImageInfo, error)
	ListContainerImagesFn      func(ctx context.Context) ([]string, error)
	// ListNetworkContainersFn returns the names of containers on a network.
	ListNetworkContainersFn func(ctx context.Context, networkName string) ([]string, error)

	// ListVolumes
	ListVolumesFn    func(ctx context.Context, prefix string) ([]string, error)
	ListVolumesCalls []string // prefixes queried

	// DiskUsage
	DiskUsageFn    func(ctx context.Context) (*docker.StorageUsage, error)
	DiskUsageCalls int

	// RunEnvironment
	RunEnvironmentFn    func(ctx context.Context, cfg docker.RunEnvironmentConfig) (string, error)
	RunEnvironmentCalls int

	// ExecCreate
	ExecCreateFn    func(ctx context.Context, containerID string, cmd []string, workDir string) (string, error)
	ExecCreateCalls []string // containerIDs

	// ExecRun
	ExecRunFn    func(ctx context.Context, execID string, timeout time.Duration) ([]byte, []byte, int, error)
	ExecRunCalls []string // exec IDs

	// RenameContainer
	RenameContainerFn    func(ctx context.Context, containerID, newName string) error
	RenameContainerCalls int
	RenameContainerArgs  [][2]string // [containerID, newName]

	// CopyToContainer
	CopyToContainerFn    func(ctx context.Context, containerID string, dstPath string, content io.Reader) error
	CopyToContainerCalls []string // containerIDs

	// ContainerStats
	ContainerStatsFn func(ctx context.Context, containerID string) (*docker.ContainerStats, error)
	// contains filtered or unexported fields
}

MockDockerClient is a test double for docker.Client. Set the function fields to control return values; inspect the recorded fields to verify calls.

func (*MockDockerClient) ConnectNetwork

func (m *MockDockerClient) ConnectNetwork(ctx context.Context, networkID, containerID string) error

func (*MockDockerClient) ConnectNetworkAlias

func (m *MockDockerClient) ConnectNetworkAlias(ctx context.Context, networkID, containerID, alias string) error

func (*MockDockerClient) ContainerStats

func (m *MockDockerClient) ContainerStats(ctx context.Context, containerID string) (*docker.ContainerStats, error)

func (*MockDockerClient) CopyToContainer

func (m *MockDockerClient) CopyToContainer(ctx context.Context, containerID string, dstPath string, content io.Reader) error

func (*MockDockerClient) CreateVolume

func (m *MockDockerClient) CreateVolume(ctx context.Context, name string) error

func (*MockDockerClient) DiskUsage

func (m *MockDockerClient) DiskUsage(ctx context.Context) (*docker.StorageUsage, error)

func (*MockDockerClient) EnsureIngressNetwork

func (m *MockDockerClient) EnsureIngressNetwork(ctx context.Context, name string) (string, error)

func (*MockDockerClient) EnsureNetwork

func (m *MockDockerClient) EnsureNetwork(ctx context.Context, name string) (string, error)

func (*MockDockerClient) ExecCreate

func (m *MockDockerClient) ExecCreate(ctx context.Context, containerID string, cmd []string, workDir string) (string, error)

func (*MockDockerClient) ExecRun

func (m *MockDockerClient) ExecRun(ctx context.Context, execID string, timeout time.Duration) ([]byte, []byte, int, error)

func (*MockDockerClient) GetContainerLabels

func (m *MockDockerClient) GetContainerLabels(ctx context.Context, containerID string) map[string]string

func (*MockDockerClient) GetContainerName

func (m *MockDockerClient) GetContainerName(ctx context.Context, containerID string) string

func (*MockDockerClient) ImageExists

func (m *MockDockerClient) ImageExists(ctx context.Context, img string) (bool, error)

func (*MockDockerClient) InspectContainer

func (m *MockDockerClient) InspectContainer(ctx context.Context, containerID string) (*docker.ContainerInfo, error)

func (*MockDockerClient) ListContainerImages

func (m *MockDockerClient) ListContainerImages(ctx context.Context) ([]string, error)

func (*MockDockerClient) ListContainersByLabel

func (m *MockDockerClient) ListContainersByLabel(ctx context.Context, label, value string) ([]string, error)

func (*MockDockerClient) ListImages

func (m *MockDockerClient) ListImages(ctx context.Context) ([]docker.ImageInfo, error)

func (*MockDockerClient) ListNetworkContainers

func (m *MockDockerClient) ListNetworkContainers(ctx context.Context, networkName string) ([]string, error)

func (*MockDockerClient) ListVolumes

func (m *MockDockerClient) ListVolumes(ctx context.Context, prefix string) ([]string, error)

func (*MockDockerClient) LogsContainer

func (m *MockDockerClient) LogsContainer(ctx context.Context, containerID string, follow bool, tail int) (io.ReadCloser, error)

func (*MockDockerClient) NetworkDisconnect

func (m *MockDockerClient) NetworkDisconnect(ctx context.Context, networkID, containerID string) error

func (*MockDockerClient) NetworkInspect

func (m *MockDockerClient) NetworkInspect(ctx context.Context, networkID string) (docker.NetworkInfo, error)

func (*MockDockerClient) NetworkList

func (m *MockDockerClient) NetworkList(ctx context.Context) ([]docker.NetworkInfo, error)

func (*MockDockerClient) PruneAnonymousVolumes

func (m *MockDockerClient) PruneAnonymousVolumes(ctx context.Context) (int, error)

func (*MockDockerClient) PruneDanglingImages

func (m *MockDockerClient) PruneDanglingImages(ctx context.Context) (int, error)

func (*MockDockerClient) PullImage

func (m *MockDockerClient) PullImage(ctx context.Context, img string) error

func (*MockDockerClient) RemoveContainer

func (m *MockDockerClient) RemoveContainer(ctx context.Context, containerID string) error

func (*MockDockerClient) RemoveImage

func (m *MockDockerClient) RemoveImage(ctx context.Context, imageRef string) error

func (*MockDockerClient) RemoveNetwork

func (m *MockDockerClient) RemoveNetwork(ctx context.Context, networkID string) error

func (*MockDockerClient) RemoveVolume

func (m *MockDockerClient) RemoveVolume(ctx context.Context, name string) error

func (*MockDockerClient) RemoveVolumeSafe

func (m *MockDockerClient) RemoveVolumeSafe(ctx context.Context, name string) error

func (*MockDockerClient) RenameContainer

func (m *MockDockerClient) RenameContainer(ctx context.Context, containerID, newName string) error

func (*MockDockerClient) RestartContainer

func (m *MockDockerClient) RestartContainer(ctx context.Context, containerID string) error

func (*MockDockerClient) RunContainer

func (m *MockDockerClient) RunContainer(ctx context.Context, tenantID, serviceID, img string, port int, envVars map[string]string, extraLabels map[string]string, limits *docker.ResourceLimits) (string, error)

func (*MockDockerClient) RunDatabase

func (m *MockDockerClient) RunDatabase(ctx context.Context, cfg docker.RunDatabaseConfig) (string, error)

func (*MockDockerClient) RunEnvironment

func (m *MockDockerClient) RunEnvironment(ctx context.Context, cfg docker.RunEnvironmentConfig) (string, error)

func (*MockDockerClient) StartContainer

func (m *MockDockerClient) StartContainer(ctx context.Context, containerID string) error

func (*MockDockerClient) StopAndRemoveByName

func (m *MockDockerClient) StopAndRemoveByName(ctx context.Context, name string) error

func (*MockDockerClient) StopContainer

func (m *MockDockerClient) StopContainer(ctx context.Context, containerID string) error

func (*MockDockerClient) TagImage

func (m *MockDockerClient) TagImage(ctx context.Context, source, target string) error

func (*MockDockerClient) VerifyGVisorRuntime

func (m *MockDockerClient) VerifyGVisorRuntime(ctx context.Context) error

func (*MockDockerClient) WipeVolume

func (m *MockDockerClient) WipeVolume(ctx context.Context, name string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL