func (s *ContainerTestSuite) TestCallCleanShouldStopTheContainer(c *C) { // Create a gomock controller, and arrange for it's finish to be called ctrl := gomock.NewController(c) defer ctrl.Finish() // Setup the docker mock package docker.MOCK().SetController(ctrl) docker.EXPECT().Inspect(gomock.Any()).Return([]byte("[{\"ID\": \"123\", \"State\":{\"Running\": false}, \"NetworkSettings\": {\"IPAddress\": \"172.17.0.10\"}}]"), nil) docker.EXPECT().Kill(gomock.Any()).Return() docker.EXPECT().Remove(gomock.Any()).Return() done := make(chan bool, 1) container := container.Container{Name: "Test"} container.Clean(done) <-done c.Check(container.IsRunning(), Equals, false) }