package docker import ( "fmt" "testing" ) func TestServerListOrderedImagesByCreationDate(t *testing.T) { runtime := mkRuntime(t) defer nuke(runtime) archive, err := fakeTar() if err != nil { t.Fatal(err) } _, err = runtime.graph.Create(archive, nil, "Testing", "", nil) if err != nil { t.Fatal(err) } srv := &Server{runtime: runtime} images, err := srv.Images(true, "") if err != nil { t.Fatal(err) } if images[0].Created < images[1].Created { t.Error("Expected []APIImges to be ordered by most recent creation date.") } } func TestServerListOrderedImagesByCreationDateAndTag(t *testing.T) { runtime := mkRuntime(t) defer nuke(runtime) archive, err := fakeTar() if err != nil { t.Fatal(err) } image, err := runtime.graph.Create(archive, nil, "Testing", "", nil) if err != nil { t.Fatal(err) } srv := &Server{runtime: runtime} srv.ContainerTag(image.ID, "repo", "foo", false) srv.ContainerTag(image.ID, "repo", "bar", false) images, err := srv.Images(true, "") if err != nil { t.Fatal(err) } if images[0].Created != images[1].Created || images[0].Tag >= images[1].Tag { t.Error("Expected []APIImges to be ordered by most recent creation date and tag name.") } } func TestSortUniquePorts(t *testing.T) { ports := []Port{ Port("6379/tcp"), Port("22/tcp"), } sortPorts(ports, func(ip, jp Port) bool { return ip.Int() < jp.Int() || (ip.Int() == jp.Int() && ip.Proto() == "tcp") }) first := ports[0] if fmt.Sprint(first) != "22/tcp" { t.Log(fmt.Sprint(first)) t.Fail() } } func TestSortSamePortWithDifferentProto(t *testing.T) { ports := []Port{ Port("8888/tcp"), Port("8888/udp"), Port("6379/tcp"), Port("6379/udp"), } sortPorts(ports, func(ip, jp Port) bool { return ip.Int() < jp.Int() || (ip.Int() == jp.Int() && ip.Proto() == "tcp") }) first := ports[0] if fmt.Sprint(first) != "6379/tcp" { t.Fail() } }