From 99579cb37c69a321e8f2faf2a276f7ac3e395b0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Fri, 21 Jan 2022 13:35:29 +0100 Subject: [PATCH] feat(tests): add tests for bool and string converters --- .../Basic/BoolStringConverterTests.cs | 85 +++++++++++++++++++ .../Converters/Basic/StringConverterTests.cs | 59 +++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs create mode 100644 Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs diff --git a/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs b/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs new file mode 100644 index 0000000..5f9e059 --- /dev/null +++ b/Tests/NosSmooth.Packets.Tests/Converters/Basic/BoolStringConverterTests.cs @@ -0,0 +1,85 @@ +// +// BoolStringConverterTests.cs +// +// Copyright (c) František Boháček. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Extensions.DependencyInjection; +using NosSmooth.Packets.Converters.Basic; +using NosSmooth.Packets.Extensions; +using NosSmooth.PacketSerializer.Abstractions; +using Xunit; + +namespace NosSmooth.Packets.Tests.Converters.Basic; + +/// +/// Tests for . +/// +public class BoolStringConverterTests +{ + private readonly IStringSerializer _stringSerializer; + + /// + /// Initializes a new instance of the class. + /// + public BoolStringConverterTests() + { + var provider = new ServiceCollection() + .AddPacketSerialization() + .BuildServiceProvider(); + + _stringSerializer = provider.GetRequiredService(); + } + + /// + /// Tests that the serializer serializes null as -1. + /// + [Fact] + public void TestsTreatsNullAsMinusOne() + { + bool? test = null; + var stringBuilder = new PacketStringBuilder(); + var serializeResult = _stringSerializer.Serialize(test, stringBuilder); + Assert.True(serializeResult.IsSuccess, !serializeResult.IsSuccess ? serializeResult.Error.Message : string.Empty); + Assert.Equal("-1", stringBuilder.ToString()); + } + + /// + /// Tests that the serializer deserializes null as -1. + /// + [Fact] + public void TestsSerializesMinusOneAsNull() + { + var deserialize = "-1"; + var stringEnumerator = new PacketStringEnumerator(deserialize); + var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator); + Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); + Assert.Null(deserializeResult.Entity); + } + + /// + /// Tests that the serializer deserializes 1 as true. + /// + [Fact] + public void TestsSerializesOneAsTrue() + { + var deserialize = "1"; + var stringEnumerator = new PacketStringEnumerator(deserialize); + var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator); + Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); + Assert.True(deserializeResult.Entity); + } + + /// + /// Tests that the serializer deserializes 0 as false. + /// + [Fact] + public void TestsSerializesOneAsFalse() + { + var deserialize = "0"; + var stringEnumerator = new PacketStringEnumerator(deserialize); + var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator); + Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); + Assert.False(deserializeResult.Entity); + } +} \ No newline at end of file diff --git a/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs b/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs new file mode 100644 index 0000000..fb8dc06 --- /dev/null +++ b/Tests/NosSmooth.Packets.Tests/Converters/Basic/StringConverterTests.cs @@ -0,0 +1,59 @@ +// +// StringConverterTests.cs +// +// Copyright (c) František Boháček. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System.ComponentModel; +using Microsoft.Extensions.DependencyInjection; +using NosSmooth.Packets.Extensions; +using NosSmooth.PacketSerializer.Abstractions; +using Xunit; + +namespace NosSmooth.Packets.Tests.Converters.Basic; + +/// +/// Tests for . +/// +public class StringConverterTests +{ + private readonly IStringSerializer _stringSerializer; + + /// + /// Initializes a new instance of the class. + /// + public StringConverterTests() + { + var provider = new ServiceCollection() + .AddPacketSerialization() + .BuildServiceProvider(); + + _stringSerializer = provider.GetRequiredService(); + } + + /// + /// Tests that the serializer serializes null as -. + /// + [Fact] + public void TestsTreatsNullAsMinus() + { + string? test = null; + var stringBuilder = new PacketStringBuilder(); + var serializeResult = _stringSerializer.Serialize(test, stringBuilder); + Assert.True(serializeResult.IsSuccess, !serializeResult.IsSuccess ? serializeResult.Error.Message : string.Empty); + Assert.Equal("-", stringBuilder.ToString()); + } + + /// + /// Tests that the serializer serializes null as -. + /// + [Fact] + public void TestsTreatsMinusAsNull() + { + var deserialize = "-"; + var stringEnumerator = new PacketStringEnumerator(deserialize); + var deserializeResult = _stringSerializer.Deserialize(ref stringEnumerator); + Assert.True(deserializeResult.IsSuccess, !deserializeResult.IsSuccess ? deserializeResult.Error.Message : string.Empty); + Assert.Null(deserializeResult.Entity); + } +} \ No newline at end of file -- 2.49.0