From 161de6a01f4af130227be030c82ca4ffa09a8b02 Mon Sep 17 00:00:00 2001 From: Xian Chaobo Date: Tue, 5 May 2015 22:23:46 +0800 Subject: [PATCH] healthfilter unit test Signed-off-by: Xian Chaobo --- scheduler/filter/health_test.go | 83 +++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 scheduler/filter/health_test.go diff --git a/scheduler/filter/health_test.go b/scheduler/filter/health_test.go new file mode 100644 index 0000000000..ae1b20d015 --- /dev/null +++ b/scheduler/filter/health_test.go @@ -0,0 +1,83 @@ +package filter + +import ( + "errors" + "testing" + + "github.com/docker/swarm/cluster" + "github.com/docker/swarm/scheduler/node" + "github.com/stretchr/testify/assert" +) + +func testFixturesAllHealthyNode() []*node.Node { + return []*node.Node{ + { + ID: "node-0-id", + Name: "node-0-name", + IsHealthy: true, + }, + + { + ID: "node-1-id", + Name: "node-1-name", + IsHealthy: true, + }, + } +} + +func testFixturesPartHealthyNode() []*node.Node { + return []*node.Node{ + { + ID: "node-0-id", + Name: "node-0-name", + IsHealthy: false, + }, + + { + ID: "node-1-id", + Name: "node-1-name", + IsHealthy: true, + }, + } +} + +func testFixturesNoHealthyNode() []*node.Node { + return []*node.Node{ + { + ID: "node-0-id", + Name: "node-0-name", + IsHealthy: false, + }, + + { + ID: "node-1-id", + Name: "node-1-name", + IsHealthy: false, + }, + } +} + +func TestHealthyFilter(t *testing.T) { + var ( + f = HealthFilter{} + nodesAllHealth = testFixturesAllHealthyNode() + nodesPartHealth = testFixturesPartHealthyNode() + nodesNoHealth = testFixturesNoHealthyNode() + errNoHealthyNodeAvailable = errors.New("No healthy node available in the cluster") + result []*node.Node + err error + ) + + result, err = f.Filter(&cluster.ContainerConfig{}, nodesAllHealth) + assert.NoError(t, err) + assert.Equal(t, result, nodesAllHealth) + + result, err = f.Filter(&cluster.ContainerConfig{}, nodesPartHealth) + assert.NoError(t, err) + assert.Len(t, result, 1) + assert.Equal(t, result[0], nodesPartHealth[1]) + + result, err = f.Filter(&cluster.ContainerConfig{}, nodesNoHealth) + assert.Equal(t, err, errNoHealthyNodeAvailable) + assert.Nil(t, result) +}