Initial commit
This commit is contained in:
94
vendor/github.com/hyperhq/hypercli/daemon/events_test.go
generated
vendored
Normal file
94
vendor/github.com/hyperhq/hypercli/daemon/events_test.go
generated
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
package daemon
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/hyperhq/hypercli/container"
|
||||
"github.com/hyperhq/hypercli/daemon/events"
|
||||
containertypes "github.com/docker/engine-api/types/container"
|
||||
eventtypes "github.com/docker/engine-api/types/events"
|
||||
)
|
||||
|
||||
func TestLogContainerEventCopyLabels(t *testing.T) {
|
||||
e := events.New()
|
||||
_, l, _ := e.Subscribe()
|
||||
defer e.Evict(l)
|
||||
|
||||
container := &container.Container{
|
||||
CommonContainer: container.CommonContainer{
|
||||
ID: "container_id",
|
||||
Name: "container_name",
|
||||
Config: &containertypes.Config{
|
||||
Image: "image_name",
|
||||
Labels: map[string]string{
|
||||
"node": "1",
|
||||
"os": "alpine",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
daemon := &Daemon{
|
||||
EventsService: e,
|
||||
}
|
||||
daemon.LogContainerEvent(container, "create")
|
||||
|
||||
if _, mutated := container.Config.Labels["image"]; mutated {
|
||||
t.Fatalf("Expected to not mutate the container labels, got %q", container.Config.Labels)
|
||||
}
|
||||
|
||||
validateTestAttributes(t, l, map[string]string{
|
||||
"node": "1",
|
||||
"os": "alpine",
|
||||
})
|
||||
}
|
||||
|
||||
func TestLogContainerEventWithAttributes(t *testing.T) {
|
||||
e := events.New()
|
||||
_, l, _ := e.Subscribe()
|
||||
defer e.Evict(l)
|
||||
|
||||
container := &container.Container{
|
||||
CommonContainer: container.CommonContainer{
|
||||
ID: "container_id",
|
||||
Name: "container_name",
|
||||
Config: &containertypes.Config{
|
||||
Labels: map[string]string{
|
||||
"node": "1",
|
||||
"os": "alpine",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
daemon := &Daemon{
|
||||
EventsService: e,
|
||||
}
|
||||
attributes := map[string]string{
|
||||
"node": "2",
|
||||
"foo": "bar",
|
||||
}
|
||||
daemon.LogContainerEventWithAttributes(container, "create", attributes)
|
||||
|
||||
validateTestAttributes(t, l, map[string]string{
|
||||
"node": "1",
|
||||
"foo": "bar",
|
||||
})
|
||||
}
|
||||
|
||||
func validateTestAttributes(t *testing.T, l chan interface{}, expectedAttributesToTest map[string]string) {
|
||||
select {
|
||||
case ev := <-l:
|
||||
event, ok := ev.(eventtypes.Message)
|
||||
if !ok {
|
||||
t.Fatalf("Unexpected event message: %q", ev)
|
||||
}
|
||||
for key, expected := range expectedAttributesToTest {
|
||||
actual, ok := event.Actor.Attributes[key]
|
||||
if !ok || actual != expected {
|
||||
t.Fatalf("Expected value for key %s to be %s, but was %s (event:%v)", key, expected, actual, event)
|
||||
}
|
||||
}
|
||||
case <-time.After(10 * time.Second):
|
||||
t.Fatalf("LogEvent test timed out")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user