Files
WireMock.Net/test/WireMock.Net.Tests/Util/CompressionUtilsTests.cs
Stef Heyenrath a8775c3b77 Include WireMockOpenApiParser project (#916)
* Fix some nullability warnings for WireMockOpenApiParser

* .

* .

* .

* opt

* FromText

* ab

* .

* private const string AdminOpenApi = "/__admin/openapi";

* fix test

* rnd

* .

* urldetails

* 0

* ,

* .

* tests

* .

* CompressionUtilsTests

* ut

* .
2023-04-08 21:25:17 +02:00

62 lines
2.0 KiB
C#

using System;
using System.Text;
using FluentAssertions;
using RandomDataGenerator.FieldOptions;
using RandomDataGenerator.Randomizers;
using WireMock.Util;
using Xunit;
namespace WireMock.Net.Tests.Util;
public class CompressionUtilsTests
{
[Theory]
[InlineData("gzip")]
[InlineData("deflate")]
public void CompressDecompress_ValidInput_ReturnsOriginalData(string contentEncoding)
{
// Arrange
byte[] data = Encoding.UTF8.GetBytes("Test data for compression");
// Act
byte[] compressedData = CompressionUtils.Compress(contentEncoding, data);
byte[] decompressedData = CompressionUtils.Decompress(contentEncoding, compressedData);
// Assert
decompressedData.Should().BeEquivalentTo(data);
}
[Theory]
[InlineData("gzip")]
[InlineData("deflate")]
public void Compress_ValidInput_ReturnsCompressedData(string contentEncoding)
{
// Arrange
var text = RandomizerFactory.GetRandomizer(new FieldOptionsTextRegex { Pattern = "[0-9A-Z]{1000}" }).Generate()!;
byte[] data = Encoding.UTF8.GetBytes(text);
// Act
byte[] compressedData = CompressionUtils.Compress(contentEncoding, data);
// Assert
compressedData.Length.Should().BeLessThan(data.Length);
}
[Fact]
public void CompressDecompress_InvalidContentEncoding_ThrowsNotSupportedException()
{
// Arrange
byte[] data = Encoding.UTF8.GetBytes("Test data for compression");
string contentEncoding = "invalid";
// Act
Action compressAction = () => CompressionUtils.Compress(contentEncoding, data);
Action decompressAction = () => CompressionUtils.Decompress(contentEncoding, data);
// Assert
compressAction.Should().Throw<NotSupportedException>()
.WithMessage($"ContentEncoding '{contentEncoding}' is not supported.");
decompressAction.Should().Throw<NotSupportedException>()
.WithMessage($"ContentEncoding '{contentEncoding}' is not supported.");
}
}