...

Source file src/github.com/grpc-ecosystem/grpc-gateway/examples/internal/integration/client_test.go

Documentation: github.com/grpc-ecosystem/grpc-gateway/examples/internal/integration

     1  package integration_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/grpc-ecosystem/grpc-gateway/examples/internal/clients/abe"
     8  	"github.com/grpc-ecosystem/grpc-gateway/examples/internal/clients/echo"
     9  	"github.com/grpc-ecosystem/grpc-gateway/examples/internal/clients/unannotatedecho"
    10  )
    11  
    12  func TestEchoClient(t *testing.T) {
    13  	if testing.Short() {
    14  		t.Skip()
    15  		return
    16  	}
    17  
    18  	cfg := echo.NewConfiguration()
    19  	cfg.BasePath = "http://localhost:8088"
    20  
    21  	cl := echo.NewAPIClient(cfg)
    22  	resp, _, err := cl.EchoServiceApi.EchoServiceEcho(context.Background(), "foo")
    23  	if err != nil {
    24  		t.Errorf(`cl.EchoServiceApi.Echo("foo") failed with %v; want success`, err)
    25  	}
    26  	if got, want := resp.Id, "foo"; got != want {
    27  		t.Errorf("resp.Id = %q; want %q", got, want)
    28  	}
    29  }
    30  
    31  func TestEchoBodyClient(t *testing.T) {
    32  	if testing.Short() {
    33  		t.Skip()
    34  		return
    35  	}
    36  
    37  	cfg := echo.NewConfiguration()
    38  	cfg.BasePath = "http://localhost:8088"
    39  
    40  	cl := echo.NewAPIClient(cfg)
    41  	req := echo.ExamplepbSimpleMessage{Id: "foo"}
    42  	resp, _, err := cl.EchoServiceApi.EchoServiceEchoBody(context.Background(), req)
    43  	if err != nil {
    44  		t.Errorf("cl.EchoBody(%#v) failed with %v; want success", req, err)
    45  	}
    46  	if got, want := resp.Id, "foo"; got != want {
    47  		t.Errorf("resp.Id = %q; want %q", got, want)
    48  	}
    49  }
    50  
    51  func TestAbitOfEverythingClient(t *testing.T) {
    52  	if testing.Short() {
    53  		t.Skip()
    54  		return
    55  	}
    56  
    57  	cfg := abe.NewConfiguration()
    58  	cfg.BasePath = "http://localhost:8088"
    59  
    60  	cl := abe.NewAPIClient(cfg)
    61  
    62  	testABEClientCreate(t, cl)
    63  }
    64  
    65  func testABEClientCreate(t *testing.T, cl *abe.APIClient) {
    66  	enumZero := abe.ZERO_ExamplepbNumericEnum
    67  	enumPath := abe.ABC_PathenumPathEnum
    68  	messagePath := abe.JKL_MessagePathEnumNestedPathEnum
    69  
    70  	want := &abe.ExamplepbABitOfEverything{
    71  		FloatValue:               1.5,
    72  		DoubleValue:              2.5,
    73  		Int64Value:               "4294967296",
    74  		Uint64Value:              "9223372036854775807",
    75  		Int32Value:               -2147483648,
    76  		Fixed64Value:             "9223372036854775807",
    77  		Fixed32Value:             4294967295,
    78  		BoolValue:                true,
    79  		StringValue:              "strprefix/foo",
    80  		Uint32Value:              4294967295,
    81  		Sfixed32Value:            2147483647,
    82  		Sfixed64Value:            "-4611686018427387904",
    83  		Sint32Value:              2147483647,
    84  		Sint64Value:              "4611686018427387903",
    85  		NonConventionalNameValue: "camelCase",
    86  		EnumValue:                &enumZero,
    87  		PathEnumValue:            &enumPath,
    88  		NestedPathEnumValue:      &messagePath,
    89  		EnumValueAnnotation:      &enumZero,
    90  	}
    91  	resp, _, err := cl.ABitOfEverythingServiceApi.ABitOfEverythingServiceCreate(
    92  		context.Background(),
    93  		want.FloatValue,
    94  		want.DoubleValue,
    95  		want.Int64Value,
    96  		want.Uint64Value,
    97  		want.Int32Value,
    98  		want.Fixed64Value,
    99  		want.Fixed32Value,
   100  		want.BoolValue,
   101  		want.StringValue,
   102  		want.Uint32Value,
   103  		want.Sfixed32Value,
   104  		want.Sfixed64Value,
   105  		want.Sint32Value,
   106  		want.Sint64Value,
   107  		want.NonConventionalNameValue,
   108  		want.EnumValue.String(),
   109  		want.PathEnumValue.String(),
   110  		want.NestedPathEnumValue.String(),
   111  		want.EnumValueAnnotation.String(),
   112  	)
   113  	if err != nil {
   114  		t.Errorf("cl.Create(%#v) failed with %v; want success", want, err)
   115  	}
   116  	if resp.Uuid == "" {
   117  		t.Errorf("resp.Uuid is empty; want not empty")
   118  	}
   119  	resp.Uuid = ""
   120  
   121  	if resp.FloatValue != want.FloatValue {
   122  		t.Error("float")
   123  	}
   124  	if resp.DoubleValue != want.DoubleValue {
   125  		t.Error("double")
   126  	}
   127  	if resp.Int64Value != want.Int64Value {
   128  		t.Error("double")
   129  	}
   130  	if resp.Uint64Value != want.Uint64Value {
   131  		t.Error("double")
   132  	}
   133  	if resp.Int32Value != want.Int32Value {
   134  		t.Error("double")
   135  	}
   136  	if resp.Fixed32Value != want.Fixed32Value {
   137  		t.Error("bool")
   138  	}
   139  	if resp.Fixed64Value != want.Fixed64Value {
   140  		t.Error("bool")
   141  	}
   142  	if resp.BoolValue != want.BoolValue {
   143  		t.Error("bool")
   144  	}
   145  	if resp.StringValue != want.StringValue {
   146  		t.Error("bool")
   147  	}
   148  	if resp.Uint32Value != want.Uint32Value {
   149  		t.Error("bool")
   150  	}
   151  	if resp.Sfixed32Value != want.Sfixed32Value {
   152  		t.Error("bool")
   153  	}
   154  	if resp.Sfixed64Value != want.Sfixed64Value {
   155  		t.Error("bool")
   156  	}
   157  	if resp.Sint32Value != want.Sint32Value {
   158  		t.Error("bool")
   159  	}
   160  	if resp.Sint64Value != want.Sint64Value {
   161  		t.Error("enum")
   162  	}
   163  	if resp.NonConventionalNameValue != want.NonConventionalNameValue {
   164  		t.Error("enum")
   165  	}
   166  	if resp.EnumValue.String() != want.EnumValue.String() {
   167  		t.Error("enum")
   168  	}
   169  	if resp.PathEnumValue.String() != want.PathEnumValue.String() {
   170  		t.Error("path enum")
   171  	}
   172  	if resp.NestedPathEnumValue.String() != want.NestedPathEnumValue.String() {
   173  		t.Error("nested path enum")
   174  	}
   175  	if resp.NestedPathEnumValue.String() != want.NestedPathEnumValue.String() {
   176  		t.Error("nested path enum")
   177  	}
   178  }
   179  
   180  func TestUnannotatedEchoClient(t *testing.T) {
   181  	if testing.Short() {
   182  		t.Skip()
   183  		return
   184  	}
   185  
   186  	cfg := unannotatedecho.NewConfiguration()
   187  	cfg.BasePath = "http://localhost:8088"
   188  
   189  	cl := unannotatedecho.NewAPIClient(cfg)
   190  
   191  	resp, _, err := cl.UnannotatedEchoServiceApi.UnannotatedEchoServiceEcho(context.Background(), "foo")
   192  	if err != nil {
   193  		t.Errorf(`cl.Echo("foo") failed with %v; want success`, err)
   194  	}
   195  	if got, want := resp.Id, "foo"; got != want {
   196  		t.Errorf("resp.Id = %q; want %q", got, want)
   197  	}
   198  }
   199  
   200  func TestUnannotatedEchoBodyClient(t *testing.T) {
   201  	if testing.Short() {
   202  		t.Skip()
   203  		return
   204  	}
   205  
   206  	cfg := unannotatedecho.NewConfiguration()
   207  	cfg.BasePath = "http://localhost:8088"
   208  
   209  	cl := unannotatedecho.NewAPIClient(cfg)
   210  
   211  	req := unannotatedecho.ExamplepbUnannotatedSimpleMessage{Id: "foo"}
   212  	resp, _, err := cl.UnannotatedEchoServiceApi.UnannotatedEchoServiceEchoBody(context.Background(), req)
   213  	if err != nil {
   214  		t.Errorf("cl.EchoBody(%#v) failed with %v; want success", req, err)
   215  	}
   216  	if got, want := resp.Id, "foo"; got != want {
   217  		t.Errorf("resp.Id = %q; want %q", got, want)
   218  	}
   219  }
   220  

View as plain text