From e7dc068fac77bac936e50b960ab4d631600635e9 Mon Sep 17 00:00:00 2001 From: Oswald Maskens Date: Tue, 13 Feb 2018 22:04:14 +0100 Subject: [PATCH] =?utf8?q?Added=20tests=20for=20Microsoft.VisualBasic.Comp?= =?utf8?q?ilerServices.Conversions=20dotnet/corefx#1=E2=80=A6=20(dotnet/co?= =?utf8?q?refx#26744)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Added tests for Microsoft.VisualBasic.CompilerServices.Conversions dotnet/corefx#14344 * added tests for ToBoolean fro Object Commit migrated from https://github.com/dotnet/corefx/commit/c705032f0f4f6e3d34f65cf5660e3c8ea109ad47 --- .../tests/ConversionsTests.cs | 81 ++++++++++++++++++++++ .../tests/Microsoft.VisualBasic.Tests.csproj | 3 +- 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 src/libraries/Microsoft.VisualBasic/tests/ConversionsTests.cs diff --git a/src/libraries/Microsoft.VisualBasic/tests/ConversionsTests.cs b/src/libraries/Microsoft.VisualBasic/tests/ConversionsTests.cs new file mode 100644 index 0000000..56b2425 --- /dev/null +++ b/src/libraries/Microsoft.VisualBasic/tests/ConversionsTests.cs @@ -0,0 +1,81 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using Microsoft.VisualBasic.CompilerServices; +using Xunit; + +namespace Microsoft.VisualBasic.Tests +{ + public class ConversionsTests + { + [Theory] + [InlineData("true", true)] + [InlineData("false", false)] + [InlineData("5", true)] + [InlineData("0", false)] + [InlineData("5.5", true)] + [InlineData("0.0", false)] + [InlineData("&h5", true)] + [InlineData("&h0", false)] + [InlineData("&o5", true)] + [InlineData("&o0", false)] + public void ToBoolean_String_ReturnsExpected(string str, bool expected) + { + Assert.Equal(expected, Conversions.ToBoolean(str)); + } + + [Theory] + [InlineData(null)] + [InlineData("yes")] + [InlineData("contoso")] + public void ToBoolean_String_ThrowsOnInvalidFormat(string str) + { + Assert.Throws(() => Conversions.ToBoolean(str)); + } + + public static IEnumerable ToBoolean_Object_ReturnsExpected_TestData() + { + yield return new object[] { null, false }; + yield return new object[] { false, false }; + yield return new object[] { true, true }; + yield return new object[] { (sbyte)0, false }; + yield return new object[] { (sbyte)42, true }; + yield return new object[] { (byte)0, false }; + yield return new object[] { (byte)42, true }; + yield return new object[] { (System.Int16)0, false }; + yield return new object[] { (System.Int16)42, true }; + yield return new object[] { (System.UInt16)0, false }; + yield return new object[] { (System.UInt16)42, true }; + yield return new object[] { (System.Int32)0, false }; + yield return new object[] { (System.Int32)42, true }; + yield return new object[] { (System.UInt32)0, false }; + yield return new object[] { (System.UInt32)42, true }; + yield return new object[] { (System.Int64)0, false }; + yield return new object[] { (System.Int64)42, true }; + yield return new object[] { (System.UInt64)0, false }; + yield return new object[] { (System.UInt64)42, true }; + yield return new object[] { 0.0m, false }; + yield return new object[] { 0.42m, true }; + yield return new object[] { (float)0.0, false }; + yield return new object[] { (float)0.42, true }; + yield return new object[] { (double)0.0, false }; + yield return new object[] { (double)0.42, true }; + } + + [Theory] + [MemberData(nameof(ToBoolean_Object_ReturnsExpected_TestData))] + public void ToBoolean_Object_ReturnsExpected(object obj, bool expected) + { + Assert.Equal(expected, Conversions.ToBoolean(obj)); + } + + [Fact] + public void ToBoolean_Object_ThrowsOn_List() + { + Assert.Throws(() => Conversions.ToBoolean(new List())); + } + } +} diff --git a/src/libraries/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj b/src/libraries/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj index 3e0bee6..00bba03 100644 --- a/src/libraries/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj +++ b/src/libraries/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj @@ -7,6 +7,7 @@ + @@ -18,4 +19,4 @@ - + \ No newline at end of file -- 2.7.4