github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/libnetwork/client/client_service_test.go (about)

     1  package client
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	_ "github.com/docker/libnetwork/testutils"
     8  )
     9  
    10  func TestClientServiceInvalidCommand(t *testing.T) {
    11  	var out, errOut bytes.Buffer
    12  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    13  
    14  	err := cli.Cmd("docker", "service", "invalid")
    15  	if err == nil {
    16  		t.Fatal("Passing invalid commands must fail")
    17  	}
    18  }
    19  
    20  func TestClientServiceCreate(t *testing.T) {
    21  	var out, errOut bytes.Buffer
    22  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    23  
    24  	err := cli.Cmd("docker", "service", "publish", mockServiceName+"."+mockNwName)
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  }
    29  
    30  func TestClientServiceRm(t *testing.T) {
    31  	var out, errOut bytes.Buffer
    32  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    33  
    34  	err := cli.Cmd("docker", "service", "unpublish", mockServiceName+"."+mockNwName)
    35  	if err != nil {
    36  		t.Fatal(err)
    37  	}
    38  }
    39  
    40  func TestClientServiceLs(t *testing.T) {
    41  	var out, errOut bytes.Buffer
    42  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    43  
    44  	err := cli.Cmd("docker", "service", "ls")
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  }
    49  
    50  func TestClientServiceInfo(t *testing.T) {
    51  	var out, errOut bytes.Buffer
    52  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    53  
    54  	err := cli.Cmd("docker", "service", "info", mockServiceName+"."+mockNwName)
    55  	if err != nil {
    56  		t.Fatal(err)
    57  	}
    58  }
    59  
    60  func TestClientServiceInfoById(t *testing.T) {
    61  	var out, errOut bytes.Buffer
    62  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    63  
    64  	err := cli.Cmd("docker", "service", "info", mockServiceID+"."+mockNwName)
    65  	if err != nil {
    66  		t.Fatal(err)
    67  	}
    68  }
    69  
    70  func TestClientServiceJoin(t *testing.T) {
    71  	var out, errOut bytes.Buffer
    72  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    73  
    74  	err := cli.Cmd("docker", "service", "attach", mockContainerID, mockServiceName+"."+mockNwName)
    75  	if err != nil {
    76  		t.Fatal(err)
    77  	}
    78  }
    79  
    80  func TestClientServiceLeave(t *testing.T) {
    81  	var out, errOut bytes.Buffer
    82  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    83  
    84  	err := cli.Cmd("docker", "service", "detach", mockContainerID, mockServiceName+"."+mockNwName)
    85  	if err != nil {
    86  		t.Fatal(err)
    87  	}
    88  }
    89  
    90  // Docker Flag processing in flag.go uses os.Exit() frequently, even for --help
    91  // TODO : Handle the --help test-case in the IT when CLI is available
    92  /*
    93  func TestClientNetworkServiceCreateHelp(t *testing.T) {
    94  	var out, errOut bytes.Buffer
    95  	cFunc := func(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, int, error) {
    96  		return nil, 0, nil
    97  	}
    98  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
    99  
   100  	err := cli.Cmd("docker", "network", "create", "--help")
   101  	if err != nil {
   102  		t.Fatalf(err.Error())
   103  	}
   104  }
   105  */
   106  
   107  // Docker flag processing in flag.go uses os.Exit(1) for incorrect parameter case.
   108  // TODO : Handle the missing argument case in the IT when CLI is available
   109  /*
   110  func TestClientNetworkServiceCreateMissingArgument(t *testing.T) {
   111  	var out, errOut bytes.Buffer
   112  	cFunc := func(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, int, error) {
   113  		return nil, 0, nil
   114  	}
   115  	cli := NewNetworkCli(&out, &errOut, callbackFunc)
   116  
   117  	err := cli.Cmd("docker", "network", "create")
   118  	if err != nil {
   119  		t.Fatal(err.Error())
   120  	}
   121  }
   122  */