Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

322 řádky
8.2 KiB

  1. // Copyright 2019 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // https://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. // Code generated by gapic-generator. DO NOT EDIT.
  15. package trace
  16. import (
  17. emptypb "github.com/golang/protobuf/ptypes/empty"
  18. cloudtracepb "google.golang.org/genproto/googleapis/devtools/cloudtrace/v1"
  19. )
  20. import (
  21. "context"
  22. "flag"
  23. "fmt"
  24. "io"
  25. "log"
  26. "net"
  27. "os"
  28. "strings"
  29. "testing"
  30. "github.com/golang/protobuf/proto"
  31. "github.com/golang/protobuf/ptypes"
  32. "google.golang.org/api/option"
  33. status "google.golang.org/genproto/googleapis/rpc/status"
  34. "google.golang.org/grpc"
  35. "google.golang.org/grpc/codes"
  36. "google.golang.org/grpc/metadata"
  37. gstatus "google.golang.org/grpc/status"
  38. )
  39. var _ = io.EOF
  40. var _ = ptypes.MarshalAny
  41. var _ status.Status
  42. type mockTraceServer struct {
  43. // Embed for forward compatibility.
  44. // Tests will keep working if more methods are added
  45. // in the future.
  46. cloudtracepb.TraceServiceServer
  47. reqs []proto.Message
  48. // If set, all calls return this error.
  49. err error
  50. // responses to return if err == nil
  51. resps []proto.Message
  52. }
  53. func (s *mockTraceServer) ListTraces(ctx context.Context, req *cloudtracepb.ListTracesRequest) (*cloudtracepb.ListTracesResponse, error) {
  54. md, _ := metadata.FromIncomingContext(ctx)
  55. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  56. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  57. }
  58. s.reqs = append(s.reqs, req)
  59. if s.err != nil {
  60. return nil, s.err
  61. }
  62. return s.resps[0].(*cloudtracepb.ListTracesResponse), nil
  63. }
  64. func (s *mockTraceServer) GetTrace(ctx context.Context, req *cloudtracepb.GetTraceRequest) (*cloudtracepb.Trace, error) {
  65. md, _ := metadata.FromIncomingContext(ctx)
  66. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  67. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  68. }
  69. s.reqs = append(s.reqs, req)
  70. if s.err != nil {
  71. return nil, s.err
  72. }
  73. return s.resps[0].(*cloudtracepb.Trace), nil
  74. }
  75. func (s *mockTraceServer) PatchTraces(ctx context.Context, req *cloudtracepb.PatchTracesRequest) (*emptypb.Empty, error) {
  76. md, _ := metadata.FromIncomingContext(ctx)
  77. if xg := md["x-goog-api-client"]; len(xg) == 0 || !strings.Contains(xg[0], "gl-go/") {
  78. return nil, fmt.Errorf("x-goog-api-client = %v, expected gl-go key", xg)
  79. }
  80. s.reqs = append(s.reqs, req)
  81. if s.err != nil {
  82. return nil, s.err
  83. }
  84. return s.resps[0].(*emptypb.Empty), nil
  85. }
  86. // clientOpt is the option tests should use to connect to the test server.
  87. // It is initialized by TestMain.
  88. var clientOpt option.ClientOption
  89. var (
  90. mockTrace mockTraceServer
  91. )
  92. func TestMain(m *testing.M) {
  93. flag.Parse()
  94. serv := grpc.NewServer()
  95. cloudtracepb.RegisterTraceServiceServer(serv, &mockTrace)
  96. lis, err := net.Listen("tcp", "localhost:0")
  97. if err != nil {
  98. log.Fatal(err)
  99. }
  100. go serv.Serve(lis)
  101. conn, err := grpc.Dial(lis.Addr().String(), grpc.WithInsecure())
  102. if err != nil {
  103. log.Fatal(err)
  104. }
  105. clientOpt = option.WithGRPCConn(conn)
  106. os.Exit(m.Run())
  107. }
  108. func TestTraceServicePatchTraces(t *testing.T) {
  109. var expectedResponse *emptypb.Empty = &emptypb.Empty{}
  110. mockTrace.err = nil
  111. mockTrace.reqs = nil
  112. mockTrace.resps = append(mockTrace.resps[:0], expectedResponse)
  113. var projectId string = "projectId-1969970175"
  114. var traces *cloudtracepb.Traces = &cloudtracepb.Traces{}
  115. var request = &cloudtracepb.PatchTracesRequest{
  116. ProjectId: projectId,
  117. Traces: traces,
  118. }
  119. c, err := NewClient(context.Background(), clientOpt)
  120. if err != nil {
  121. t.Fatal(err)
  122. }
  123. err = c.PatchTraces(context.Background(), request)
  124. if err != nil {
  125. t.Fatal(err)
  126. }
  127. if want, got := request, mockTrace.reqs[0]; !proto.Equal(want, got) {
  128. t.Errorf("wrong request %q, want %q", got, want)
  129. }
  130. }
  131. func TestTraceServicePatchTracesError(t *testing.T) {
  132. errCode := codes.PermissionDenied
  133. mockTrace.err = gstatus.Error(errCode, "test error")
  134. var projectId string = "projectId-1969970175"
  135. var traces *cloudtracepb.Traces = &cloudtracepb.Traces{}
  136. var request = &cloudtracepb.PatchTracesRequest{
  137. ProjectId: projectId,
  138. Traces: traces,
  139. }
  140. c, err := NewClient(context.Background(), clientOpt)
  141. if err != nil {
  142. t.Fatal(err)
  143. }
  144. err = c.PatchTraces(context.Background(), request)
  145. if st, ok := gstatus.FromError(err); !ok {
  146. t.Errorf("got error %v, expected grpc error", err)
  147. } else if c := st.Code(); c != errCode {
  148. t.Errorf("got error code %q, want %q", c, errCode)
  149. }
  150. }
  151. func TestTraceServiceGetTrace(t *testing.T) {
  152. var projectId2 string = "projectId2939242356"
  153. var traceId2 string = "traceId2987826376"
  154. var expectedResponse = &cloudtracepb.Trace{
  155. ProjectId: projectId2,
  156. TraceId: traceId2,
  157. }
  158. mockTrace.err = nil
  159. mockTrace.reqs = nil
  160. mockTrace.resps = append(mockTrace.resps[:0], expectedResponse)
  161. var projectId string = "projectId-1969970175"
  162. var traceId string = "traceId1270300245"
  163. var request = &cloudtracepb.GetTraceRequest{
  164. ProjectId: projectId,
  165. TraceId: traceId,
  166. }
  167. c, err := NewClient(context.Background(), clientOpt)
  168. if err != nil {
  169. t.Fatal(err)
  170. }
  171. resp, err := c.GetTrace(context.Background(), request)
  172. if err != nil {
  173. t.Fatal(err)
  174. }
  175. if want, got := request, mockTrace.reqs[0]; !proto.Equal(want, got) {
  176. t.Errorf("wrong request %q, want %q", got, want)
  177. }
  178. if want, got := expectedResponse, resp; !proto.Equal(want, got) {
  179. t.Errorf("wrong response %q, want %q)", got, want)
  180. }
  181. }
  182. func TestTraceServiceGetTraceError(t *testing.T) {
  183. errCode := codes.PermissionDenied
  184. mockTrace.err = gstatus.Error(errCode, "test error")
  185. var projectId string = "projectId-1969970175"
  186. var traceId string = "traceId1270300245"
  187. var request = &cloudtracepb.GetTraceRequest{
  188. ProjectId: projectId,
  189. TraceId: traceId,
  190. }
  191. c, err := NewClient(context.Background(), clientOpt)
  192. if err != nil {
  193. t.Fatal(err)
  194. }
  195. resp, err := c.GetTrace(context.Background(), request)
  196. if st, ok := gstatus.FromError(err); !ok {
  197. t.Errorf("got error %v, expected grpc error", err)
  198. } else if c := st.Code(); c != errCode {
  199. t.Errorf("got error code %q, want %q", c, errCode)
  200. }
  201. _ = resp
  202. }
  203. func TestTraceServiceListTraces(t *testing.T) {
  204. var nextPageToken string = ""
  205. var tracesElement *cloudtracepb.Trace = &cloudtracepb.Trace{}
  206. var traces = []*cloudtracepb.Trace{tracesElement}
  207. var expectedResponse = &cloudtracepb.ListTracesResponse{
  208. NextPageToken: nextPageToken,
  209. Traces: traces,
  210. }
  211. mockTrace.err = nil
  212. mockTrace.reqs = nil
  213. mockTrace.resps = append(mockTrace.resps[:0], expectedResponse)
  214. var projectId string = "projectId-1969970175"
  215. var request = &cloudtracepb.ListTracesRequest{
  216. ProjectId: projectId,
  217. }
  218. c, err := NewClient(context.Background(), clientOpt)
  219. if err != nil {
  220. t.Fatal(err)
  221. }
  222. resp, err := c.ListTraces(context.Background(), request).Next()
  223. if err != nil {
  224. t.Fatal(err)
  225. }
  226. if want, got := request, mockTrace.reqs[0]; !proto.Equal(want, got) {
  227. t.Errorf("wrong request %q, want %q", got, want)
  228. }
  229. want := (interface{})(expectedResponse.Traces[0])
  230. got := (interface{})(resp)
  231. var ok bool
  232. switch want := (want).(type) {
  233. case proto.Message:
  234. ok = proto.Equal(want, got.(proto.Message))
  235. default:
  236. ok = want == got
  237. }
  238. if !ok {
  239. t.Errorf("wrong response %q, want %q)", got, want)
  240. }
  241. }
  242. func TestTraceServiceListTracesError(t *testing.T) {
  243. errCode := codes.PermissionDenied
  244. mockTrace.err = gstatus.Error(errCode, "test error")
  245. var projectId string = "projectId-1969970175"
  246. var request = &cloudtracepb.ListTracesRequest{
  247. ProjectId: projectId,
  248. }
  249. c, err := NewClient(context.Background(), clientOpt)
  250. if err != nil {
  251. t.Fatal(err)
  252. }
  253. resp, err := c.ListTraces(context.Background(), request).Next()
  254. if st, ok := gstatus.FromError(err); !ok {
  255. t.Errorf("got error %v, expected grpc error", err)
  256. } else if c := st.Code(); c != errCode {
  257. t.Errorf("got error code %q, want %q", c, errCode)
  258. }
  259. _ = resp
  260. }