Ejemplo n.º 1
0
        public static ChunkedOperation Create(HttpServer server, ChunkedOperationType type, bool sendAsync)
        {
            var(flags, status, error) = GetParameters(type);
            var handler = new GetHandler(ChunkTypeName(type), ChunkContent(type));

            return(new ChunkedOperation(server, handler, type, sendAsync, flags, status, error));
        }
Ejemplo n.º 2
0
        public Task Run(TestContext ctx, CancellationToken cancellationToken, HttpServer server,
                        [ChunkedOperationType] ChunkedOperationType type, bool sendAsync)
        {
            var runner = ChunkedOperation.Create(server, type, sendAsync);

            return(runner.Run(ctx, cancellationToken));
        }
Ejemplo n.º 3
0
 ChunkedOperation(HttpServer server, Handler handler, ChunkedOperationType type, bool sendAsync,
                  HttpOperationFlags flags, HttpStatusCode expectedStatus,
                  WebExceptionStatus expectedError)
     : base(server, handler, sendAsync, flags, expectedStatus, expectedError)
 {
     Type = type;
 }
Ejemplo n.º 4
0
        public Task ServerErrorTests(TestContext ctx, HttpServer server, bool sendAsync,
                                     [ChunkedOperationType(ServerError = true)] ChunkedOperationType type,
                                     CancellationToken cancellationToken)
        {
            var runner = ChunkedOperation.Create(server, type, sendAsync);

            return(runner.Run(ctx, cancellationToken));
        }
Ejemplo n.º 5
0
 static HttpContent ChunkContent(ChunkedOperationType type)
 {
     if (type == ChunkedOperationType.ServerAbort)
     {
         return(new ServerAbortContent());
     }
     else
     {
         return(new TestChunkedContent(type));
     }
 }
Ejemplo n.º 6
0
 public TestChunkedContent(ChunkedOperationType type)
 {
     Type = type;
 }
Ejemplo n.º 7
0
 static string ChunkTypeName(ChunkedOperationType type)
 {
     return(type.ToString());
 }
Ejemplo n.º 8
0
        static (HttpOperationFlags flags, HttpStatusCode status, WebExceptionStatus error) GetParameters(ChunkedOperationType type)
        {
            switch (type)
            {
            case ChunkedOperationType.SyncRead:
            case ChunkedOperationType.NormalChunk:
            case ChunkedOperationType.BeginEndAsyncRead:
            case ChunkedOperationType.BeginEndAsyncReadNoWait:
            case ChunkedOperationType.ServerAbort:
                return(HttpOperationFlags.None, HttpStatusCode.OK, WebExceptionStatus.Success);

            case ChunkedOperationType.SyncReadTimeout:
                return(HttpOperationFlags.None, HttpStatusCode.OK, WebExceptionStatus.Timeout);

            case ChunkedOperationType.MissingTrailer:
                return(HttpOperationFlags.None, HttpStatusCode.OK, WebExceptionStatus.ResponseContentException);

            case ChunkedOperationType.TruncatedChunk:
                return(HttpOperationFlags.None, HttpStatusCode.OK, WebExceptionStatus.ResponseContentTruncated);

            default:
                throw new NotImplementedException();
            }
        }