docs/cluster/mesos/task/tasks_test.go

77 lines
1.6 KiB
Go

package task
import (
"testing"
"github.com/docker/swarm/cluster"
"github.com/samalba/dockerclient"
"github.com/stretchr/testify/assert"
)
type testLauncher struct {
count int
}
func (t *testLauncher) LaunchTask(_ *Task) bool {
t.count = t.count - 1
return t.count == 0
}
func TestAdd(t *testing.T) {
q := NewTasks(&testLauncher{count: 1})
task1, _ := NewTask(cluster.BuildContainerConfig(dockerclient.ContainerConfig{
Image: "test-image",
CpuShares: 42,
Memory: 2097152,
Cmd: []string{"ls", "foo", "bar"},
}), "name1")
task2, _ := NewTask(cluster.BuildContainerConfig(dockerclient.ContainerConfig{
Image: "test-image",
CpuShares: 42,
Memory: 2097152,
Cmd: []string{"ls", "foo", "bar"},
}), "name2")
q.Add(task1)
assert.Equal(t, len(q.Tasks), 0)
q.Add(task2)
assert.Equal(t, len(q.Tasks), 1)
}
func TestRemove(t *testing.T) {
q := NewTasks(&testLauncher{count: 2})
task1, _ := NewTask(cluster.BuildContainerConfig(dockerclient.ContainerConfig{
Image: "test-image",
CpuShares: 42,
Memory: 2097152,
Cmd: []string{"ls", "foo", "bar"},
}), "name1")
q.Add(task1)
assert.Equal(t, len(q.Tasks), 1)
q.Remove(task1)
assert.Equal(t, len(q.Tasks), 0)
}
func TestProcess(t *testing.T) {
q := NewTasks(&testLauncher{count: 3})
task1, _ := NewTask(cluster.BuildContainerConfig(dockerclient.ContainerConfig{
Image: "test-image",
CpuShares: 42,
Memory: 2097152,
Cmd: []string{"ls", "foo", "bar"},
}), "name1")
q.Add(task1)
assert.Equal(t, len(q.Tasks), 1)
q.Process()
assert.Equal(t, len(q.Tasks), 1)
q.Process()
assert.Equal(t, len(q.Tasks), 0)
}