github.com/vieux/docker@v0.6.3-0.20161004191708-e097c2a938c7/cli/command/service/inspect_test.go (about) 1 package service 2 3 import ( 4 "bytes" 5 "strings" 6 "testing" 7 "time" 8 9 "github.com/docker/docker/api/types/swarm" 10 "github.com/docker/docker/cli/command/formatter" 11 ) 12 13 func TestPrettyPrintWithNoUpdateConfig(t *testing.T) { 14 b := new(bytes.Buffer) 15 16 endpointSpec := &swarm.EndpointSpec{ 17 Mode: "vip", 18 Ports: []swarm.PortConfig{ 19 { 20 Protocol: swarm.PortConfigProtocolTCP, 21 TargetPort: 5000, 22 }, 23 }, 24 } 25 26 two := uint64(2) 27 28 s := swarm.Service{ 29 ID: "de179gar9d0o7ltdybungplod", 30 Meta: swarm.Meta{ 31 Version: swarm.Version{Index: 315}, 32 CreatedAt: time.Now(), 33 UpdatedAt: time.Now(), 34 }, 35 Spec: swarm.ServiceSpec{ 36 Annotations: swarm.Annotations{ 37 Name: "my_service", 38 Labels: map[string]string{"com.label": "foo"}, 39 }, 40 TaskTemplate: swarm.TaskSpec{ 41 ContainerSpec: swarm.ContainerSpec{ 42 Image: "foo/bar@sha256:this_is_a_test", 43 }, 44 }, 45 Mode: swarm.ServiceMode{ 46 Replicated: &swarm.ReplicatedService{ 47 Replicas: &two, 48 }, 49 }, 50 UpdateConfig: nil, 51 Networks: []swarm.NetworkAttachmentConfig{ 52 { 53 Target: "5vpyomhb6ievnk0i0o60gcnei", 54 Aliases: []string{"web"}, 55 }, 56 }, 57 EndpointSpec: endpointSpec, 58 }, 59 Endpoint: swarm.Endpoint{ 60 Spec: *endpointSpec, 61 Ports: []swarm.PortConfig{ 62 { 63 Protocol: swarm.PortConfigProtocolTCP, 64 TargetPort: 5000, 65 PublishedPort: 30000, 66 }, 67 }, 68 VirtualIPs: []swarm.EndpointVirtualIP{ 69 { 70 NetworkID: "6o4107cj2jx9tihgb0jyts6pj", 71 Addr: "10.255.0.4/16", 72 }, 73 }, 74 }, 75 UpdateStatus: swarm.UpdateStatus{ 76 StartedAt: time.Now(), 77 CompletedAt: time.Now(), 78 }, 79 } 80 81 ctx := formatter.Context{ 82 Output: b, 83 Format: formatter.NewServiceFormat("pretty"), 84 } 85 86 err := formatter.ServiceInspectWrite(ctx, []string{"de179gar9d0o7ltdybungplod"}, func(ref string) (interface{}, []byte, error) { 87 return s, nil, nil 88 }) 89 if err != nil { 90 t.Fatal(err) 91 } 92 93 if strings.Contains(b.String(), "UpdateStatus") { 94 t.Fatal("Pretty print failed before parsing UpdateStatus") 95 } 96 }