add load unit test

Signed-off-by: Xian Chaobo <xianchaobo@huawei.com>
This commit is contained in:
Xian Chaobo 2015-05-29 22:44:27 -04:00
parent def00ea0a0
commit 78957d527b
2 changed files with 46 additions and 3 deletions

View File

@ -358,10 +358,10 @@ func (c *Cluster) Load(imageReader io.Reader, callback func(what, status string)
for _, pipeW := range pipeWriters {
listWriter = append(listWriter, pipeW)
}
mutiWriter := io.MultiWriter(listWriter...)
multiWriter := io.MultiWriter(listWriter...)
// copy image-reader to muti-writer
_, err := io.Copy(mutiWriter, imageReader)
// copy image-reader to multi-writer
_, err := io.Copy(multiWriter, imageReader)
if err != nil {
log.Error(err)
}

View File

@ -150,3 +150,46 @@ func TestImportImage(t *testing.T) {
}
c.Import("-", "testImageError", "latest", bytes.NewReader(nil), callback)
}
func TestLoadImage(t *testing.T) {
// create cluster
c := &Cluster{
engines: make(map[string]*cluster.Engine),
}
// create engione
id := "test-engine"
engine := cluster.NewEngine(id, 0)
engine.Name = id
engine.ID = id
// create mock client
client := mockclient.NewMockClient()
client.On("Info").Return(mockInfo, nil)
client.On("StartMonitorEvents", mock.Anything, mock.Anything, mock.Anything).Return()
client.On("ListContainers", true, false, "").Return([]dockerclient.Container{}, nil).Once()
client.On("ListImages").Return([]*dockerclient.Image{}, nil)
// connect client
engine.ConnectWithClient(client)
// add engine to cluster
c.engines[engine.ID] = engine
// load success
client.On("LoadImage", mock.AnythingOfType("*io.PipeReader")).Return(nil).Once()
callback := func(what, status string) {
//if load OK, will not come here
t.Fatalf("Load error")
}
c.Load(bytes.NewReader(nil), callback)
// load error
err := fmt.Errorf("Load error")
client.On("LoadImage", mock.AnythingOfType("*io.PipeReader")).Return(err).Once()
callback = func(what, status string) {
// load error
assert.Equal(t, status, "Load error")
}
c.Load(bytes.NewReader(nil), callback)
}