public void JsonContentBuilder_Build_CustomKey(string data)
        {
            // Arrange
            IJsonStreamModifier sut = new JsonStreamModifier();

            byte[] bytes  = Encoding.UTF8.GetBytes(data);
            var    input  = new MemoryStream(bytes);
            var    output = new MemoryStream();

            // Act
            sut.Modify(input, output, k => "key");
            using var reader = new StreamReader(output);
            string text = reader.ReadToEnd();

            // Assert
            text.Should().Be("{\"key\":\"value\"}");
        }
        public void JsonStreamModifier_Modify_WritesAsOriginal(string data)
        {
            // Arrange
            IJsonStreamModifier sut = new JsonStreamModifier();

            byte[] bytes  = Encoding.UTF8.GetBytes(data);
            var    input  = new MemoryStream(bytes);
            var    output = new MemoryStream();

            // Act
            sut.Modify(input, output);
            using var reader = new StreamReader(output);
            string text = reader.ReadToEnd();

            // Assert
            text.Should().Be(data);
        }
Example #3
0
        public void LongJsonContentMiddleware_Modify_TrimsValue()
        {
            // Arrange
            var jsonBuilder = new JsonStreamModifier();
            LongJsonContentMiddleware sut = new(jsonBuilder, 10);
            string content = @"{""key1"":""short"",""key2"":""some long content""}";

            byte[]       bytes  = Encoding.UTF8.GetBytes(content);
            MemoryStream output = new();

            // Act
            sut.Modify(new MemoryStream(bytes), output);

            // Assert
            new StreamReader(output).ReadToEnd().Should()
            .NotBeEmpty()
            .And.BeEquivalentTo(@"{""key1"":""short"",""key2"":""some long ...""}");
        }
        public async Task LogContentFactory_PrepareBody_ProperlyHandlesMiddleware()
        {
            // Arrange
            var jsonBuilder = new JsonStreamModifier();
            var middlewares = new List <IRequestContentLogMiddleware> {
                new LongJsonContentMiddleware(jsonBuilder, 16)
            };
            var    sut     = new LogContentFactory(middlewares);
            string content = "{\"trimOn14\":\"123456789012345\",\"trimOn16\":\"12345678901234567\"}";

            byte[] contentBytes = Encoding.UTF8.GetBytes(content);
            Stream stream       = new MemoryStream(contentBytes);

            // Act
            string result = await sut.PrepareBody("application/json", stream);

            // Assert
            result.Should()
            .NotBeNullOrEmpty()
            .And.BeEquivalentTo(
                $"{Environment.NewLine}{{\"trimOn14\":\"123456789012345\",\"trimOn16\":\"1234567890...\"}}");
        }