To test header metadata is sent when sending response.
(t *testing.T, e env)
| 2849 | |
| 2850 | // To test header metadata is sent when sending response. |
| 2851 | func testMultipleSetHeaderStreamingRPC(t *testing.T, e env) { |
| 2852 | te := newTest(t, e) |
| 2853 | te.startServer(&testServer{security: e.security, setHeaderOnly: true}) |
| 2854 | defer te.tearDown() |
| 2855 | tc := testgrpc.NewTestServiceClient(te.clientConn()) |
| 2856 | |
| 2857 | const ( |
| 2858 | argSize = 1 |
| 2859 | respSize = 1 |
| 2860 | ) |
| 2861 | ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout) |
| 2862 | defer cancel() |
| 2863 | ctx = metadata.NewOutgoingContext(ctx, testMetadata) |
| 2864 | stream, err := tc.FullDuplexCall(ctx) |
| 2865 | if err != nil { |
| 2866 | t.Fatalf("%v.FullDuplexCall(_) = _, %v, want <nil>", tc, err) |
| 2867 | } |
| 2868 | |
| 2869 | payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, argSize) |
| 2870 | if err != nil { |
| 2871 | t.Fatal(err) |
| 2872 | } |
| 2873 | |
| 2874 | req := &testpb.StreamingOutputCallRequest{ |
| 2875 | ResponseType: testpb.PayloadType_COMPRESSABLE, |
| 2876 | ResponseParameters: []*testpb.ResponseParameters{ |
| 2877 | {Size: respSize}, |
| 2878 | }, |
| 2879 | Payload: payload, |
| 2880 | } |
| 2881 | if err := stream.Send(req); err != nil { |
| 2882 | t.Fatalf("%v.Send(%v) = %v, want <nil>", stream, req, err) |
| 2883 | } |
| 2884 | if _, err := stream.Recv(); err != nil { |
| 2885 | t.Fatalf("%v.Recv() = %v, want <nil>", stream, err) |
| 2886 | } |
| 2887 | if err := stream.CloseSend(); err != nil { |
| 2888 | t.Fatalf("%v.CloseSend() got %v, want %v", stream, err, nil) |
| 2889 | } |
| 2890 | if _, err := stream.Recv(); err != io.EOF { |
| 2891 | t.Fatalf("%v failed to complele the FullDuplexCall: %v", stream, err) |
| 2892 | } |
| 2893 | |
| 2894 | header, err := stream.Header() |
| 2895 | if err != nil { |
| 2896 | t.Fatalf("%v.Header() = _, %v, want _, <nil>", stream, err) |
| 2897 | } |
| 2898 | delete(header, "user-agent") |
| 2899 | delete(header, "content-type") |
| 2900 | delete(header, "grpc-accept-encoding") |
| 2901 | expectedHeader := metadata.Join(testMetadata, testMetadata2) |
| 2902 | if !reflect.DeepEqual(header, expectedHeader) { |
| 2903 | t.Fatalf("Received header metadata %v, want %v", header, expectedHeader) |
| 2904 | } |
| 2905 | |
| 2906 | } |
| 2907 | |
| 2908 | func (s) TestMultipleSetHeaderStreamingRPCError(t *testing.T) { |
no test coverage detected