コード例 #1
0
        public void CorrectPaddingIsUsedAfterHexValues(int bufferLength, string expectedOutput)
        {
            var mockLogger    = new MockLogger();
            var loggingStream = new LoggingStream(Stream.Null, mockLogger);

            loggingStream.Write(new byte[bufferLength]);

            Assert.Equal($"Write[{bufferLength}]{Environment.NewLine}{expectedOutput}", mockLogger.Logs);
        }
コード例 #2
0
        public async void ShouldDuplicateWrites_GivenAsyncInput()
        {
            byte[] input = { 0x65, 0x66, 0x67, 0x68 }; //ABCD

            using (MemoryStream observedStream = new MemoryStream())
                using (MemoryStream buffStream = new MemoryStream())
                    using (LoggingStream target = new LoggingStream(buffStream, observedStream, MaxBytes))
                    {
                        await target.WriteAsync(input, 0, input.Length);

                        target.LogContentLength.ShouldBeEquivalentTo(4);
                        target.LogContentLength.ShouldBeEquivalentTo(input.Length);
                        target.LogContentLength.ShouldBeEquivalentTo(observedStream.Length);
                    }
        }
コード例 #3
0
        public async void ShouldDuplicateReads_GivenAsyncInput()
        {
            byte[] input = { 0x65, 0x66, 0x67, 0x68 }; //ABCD

            using (MemoryStream observedStream = new MemoryStream(input, false))
                using (MemoryStream buffStream = new MemoryStream())
                    using (LoggingStream target = new LoggingStream(buffStream, observedStream, MaxBytes))
                    {
                        int    bytesToRead = 2;
                        byte[] readBytes   = new byte[bytesToRead];
                        int    bytesRead   = await target.ReadAsync(readBytes, 0, bytesToRead);

                        bytesRead.ShouldBeEquivalentTo(bytesToRead);
                        buffStream.Length.ShouldBeEquivalentTo(bytesToRead);
                        target.LogContentLength.ShouldBeEquivalentTo(bytesToRead);
                        observedStream.Length.ShouldBeEquivalentTo(input.Length);
                    }
        }
コード例 #4
0
        public async Task Post()
        {
            Console.WriteLine(
                String.Join("\n", Request.Headers.Select(x => $"{x.Key} = {x.Value}")));

            Console.WriteLine($"Post!");
            //FileStream fs = new FileStream("/tmp/out", FileMode.Create);
            //Request.Body.CopyTo(fs);

            var ins = Request.Body;

            using (var loggingStream = new LoggingStream())
            {
                await ins.CopyToAsync(loggingStream);
            }

            Console.WriteLine($"Post done!");
        }
コード例 #5
0
        public void ExtraNewLineIsNotLoggedGivenEmptyBuffer()
        {
            var mockLogger    = new MockLogger();
            var loggingStream = new LoggingStream(Stream.Null, mockLogger);

            loggingStream.Write(default);