Beispiel #1
0
func (*MockSuite) TestContainerStartStarts(c *gc.C) {
	factory := mock.MockFactory()
	container := factory.New("first")
	err := container.Start(kvm.StartParams{})
	c.Assert(err, gc.IsNil)
	c.Assert(container.IsRunning(), jc.IsTrue)
}
Beispiel #2
0
func (*MockSuite) TestContainerStartingRunningErrors(c *gc.C) {
	factory := mock.MockFactory()
	container := factory.New("first")
	err := container.Start(kvm.StartParams{})
	c.Assert(err, gc.IsNil)
	err = container.Start(kvm.StartParams{})
	c.Assert(err, gc.ErrorMatches, "container is already running")
}
Beispiel #3
0
func (*MockSuite) TestNewContainersInList(c *gc.C) {
	factory := mock.MockFactory()
	added := []kvm.Container{}
	added = append(added, factory.New("first"))
	added = append(added, factory.New("second"))
	containers, err := factory.List()
	c.Assert(err, gc.IsNil)
	c.Assert(containers, jc.SameContents, added)
}
Beispiel #4
0
func (s *TestSuite) SetUpTest(c *gc.C) {
	s.LoggingSuite.SetUpTest(c)
	s.ContainerDir = c.MkDir()
	s.PatchValue(&container.ContainerDir, s.ContainerDir)
	s.RemovedDir = c.MkDir()
	s.PatchValue(&container.RemovedContainerDir, s.RemovedDir)
	s.Factory = mock.MockFactory()
	s.PatchValue(&kvm.KvmObjectFactory, s.Factory)
}
Beispiel #5
0
func (*MockSuite) TestRemoveMiddleListener(c *gc.C) {
	factory := mock.MockFactory()
	first := make(chan mock.Event)
	factory.AddListener(first)
	second := make(chan mock.Event)
	factory.AddListener(second)
	third := make(chan mock.Event)
	factory.AddListener(third)
	factory.RemoveListener(second)
	c.Assert(factory.HasListener(first), jc.IsTrue)
	c.Assert(factory.HasListener(second), jc.IsFalse)
	c.Assert(factory.HasListener(third), jc.IsTrue)
}
Beispiel #6
0
func (*MockSuite) TestEventsGoToAllListeners(c *gc.C) {
	factory := mock.MockFactory()
	first := make(chan mock.Event, 5)
	factory.AddListener(first)
	second := make(chan mock.Event, 5)
	factory.AddListener(second)

	container := factory.New("container")
	container.Start(kvm.StartParams{})
	container.Stop()

	c.Assert(<-first, gc.Equals, mock.Event{mock.Started, "container"})
	c.Assert(<-second, gc.Equals, mock.Event{mock.Started, "container"})
	c.Assert(<-first, gc.Equals, mock.Event{mock.Stopped, "container"})
	c.Assert(<-second, gc.Equals, mock.Event{mock.Stopped, "container"})
}
Beispiel #7
0
func (*MockSuite) TestEvents(c *gc.C) {
	factory := mock.MockFactory()
	listener := make(chan mock.Event, 5)
	factory.AddListener(listener)

	first := factory.New("first")
	second := factory.New("second")
	first.Start(kvm.StartParams{})
	second.Start(kvm.StartParams{})
	second.Stop()
	first.Stop()

	c.Assert(<-listener, gc.Equals, mock.Event{mock.Started, "first"})
	c.Assert(<-listener, gc.Equals, mock.Event{mock.Started, "second"})
	c.Assert(<-listener, gc.Equals, mock.Event{mock.Stopped, "second"})
	c.Assert(<-listener, gc.Equals, mock.Event{mock.Stopped, "first"})
}
Beispiel #8
0
func (*MockSuite) TestAddListener(c *gc.C) {
	listener := make(chan mock.Event)
	factory := mock.MockFactory()
	factory.AddListener(listener)
	c.Assert(factory.HasListener(listener), jc.IsTrue)
}
Beispiel #9
0
func (*MockSuite) TestContainerStoppingStoppedErrors(c *gc.C) {
	factory := mock.MockFactory()
	container := factory.New("first")
	err := container.Stop()
	c.Assert(err, gc.ErrorMatches, "container is not running")
}
Beispiel #10
0
func (*MockSuite) TestContainers(c *gc.C) {
	factory := mock.MockFactory()
	container := factory.New("first")
	c.Assert(container.Name(), gc.Equals, "first")
	c.Assert(container.IsRunning(), jc.IsFalse)
}
Beispiel #11
0
func (*MockSuite) TestListInitiallyEmpty(c *gc.C) {
	factory := mock.MockFactory()
	containers, err := factory.List()
	c.Assert(err, gc.IsNil)
	c.Assert(containers, gc.HasLen, 0)
}