refactor: change structure project

This commit is contained in:
lorsan
2026-05-03 19:17:55 +03:00
parent e289365ce8
commit c44fedb488
38 changed files with 62 additions and 59 deletions
@@ -0,0 +1,135 @@
package docker_service
import (
"context"
"errors"
"testing"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/rs/zerolog"
)
var testError error = errors.New("test")
type DockerMock struct {
pingErr error
containers []container.Summary
containerErr error
}
func (d DockerMock) Ping(ctx context.Context) (types.Ping, error) {
return types.Ping{}, d.pingErr
}
func (d DockerMock) ContainerList(ctx context.Context, _ container.ListOptions) ([]container.Summary, error) {
return d.containers, d.containerErr
}
func TestCheckDockerDaemon(t *testing.T) {
t.Parallel()
tests := []struct {
name string
mock DockerMock
wantErr error
}{
{
name: "success",
mock: DockerMock{
pingErr: nil,
containers: nil,
containerErr: nil,
},
wantErr: nil,
},
{
name: "docker error",
mock: DockerMock{
pingErr: testError,
containers: nil,
containerErr: nil,
},
wantErr: testError,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
svc := NewDockerService(tt.mock, zerolog.Logger{})
err := svc.CheckDockerDaemon(context.Background())
if !errors.Is(err, tt.wantErr) {
t.Fatalf("expected error %v, got: %v", tt.wantErr, err)
}
})
}
}
func TestContainersList(t *testing.T) {
t.Parallel()
containers := []container.Summary{
{ID: "123", Image: "postgres:latest"},
{ID: "456", Image: "nginx:latest"},
}
tests := []struct {
name string
mock DockerMock
wantLen int
wantErr error
}{
{
name: "success",
mock: DockerMock{
pingErr: nil,
containers: containers,
containerErr: nil,
},
wantLen: len(containers),
wantErr: nil,
},
{
name: "docker error",
mock: DockerMock{
pingErr: nil,
containers: nil,
containerErr: testError,
},
wantLen: 0,
wantErr: testError,
},
{
name: "docker empty container",
mock: DockerMock{
pingErr: nil,
containers: nil,
containerErr: nil,
},
wantLen: 0,
wantErr: nil,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
svc := NewDockerService(tt.mock, zerolog.Logger{})
got, err := svc.ContainersList(context.Background())
if !errors.Is(err, tt.wantErr) {
t.Fatalf("expected error %v, got: %v", tt.wantErr, err)
}
if tt.wantLen != len(got) {
t.Fatalf("expected %d containers, got: %d", tt.wantLen, len(got))
}
})
}
}