package mocks import ( "github.com/containrrr/watchtower/pkg/container" "github.com/docker/docker/api/types" container2 "github.com/docker/docker/api/types/container" "time" ) // CreateMockContainer creates a container substitute valid for testing func CreateMockContainer(id string, name string, image string, created time.Time) container.Container { content := types.ContainerJSON{ ContainerJSONBase: &types.ContainerJSONBase{ ID: id, Image: image, Name: name, Created: created.String(), }, Config: &container2.Config{ Image: image, Labels: make(map[string]string), }, } return *container.NewContainer( &content, &types.ImageInspect{ ID: image, RepoDigests: []string{ image, }, }, ) } // CreateMockContainerWithImageInfo should only be used for testing func CreateMockContainerWithImageInfo(id string, name string, image string, created time.Time, imageInfo types.ImageInspect) container.Container { content := types.ContainerJSON{ ContainerJSONBase: &types.ContainerJSONBase{ ID: id, Image: image, Name: name, Created: created.String(), }, Config: &container2.Config{ Image: image, Labels: make(map[string]string), }, } return *container.NewContainer( &content, &imageInfo, ) } // CreateMockContainerWithDigest should only be used for testing func CreateMockContainerWithDigest(id string, name string, image string, created time.Time, digest string) container.Container { c := CreateMockContainer(id, name, image, created) c.ImageInfo().RepoDigests = []string{digest} return c } // CreateMockContainerWithConfig creates a container substitute valid for testing func CreateMockContainerWithConfig(id string, name string, image string, created time.Time, config *container2.Config) container.Container { content := types.ContainerJSON{ ContainerJSONBase: &types.ContainerJSONBase{ ID: id, Image: image, Name: name, Created: created.String(), }, Config: config, } return *container.NewContainer( &content, &types.ImageInspect{ ID: image, }, ) }