From 731606683c2bf7c31b9af6e7f6c5c0f102bf4716 Mon Sep 17 00:00:00 2001 From: Oswald Maskens Date: Thu, 1 Feb 2018 18:55:37 +0100 Subject: [PATCH 1/2] Added tests for Microsoft.VisualBasic.CompilerServices.Conversions #14344 --- .../tests/ConversionsTests.cs | 41 +++++++++++++++++++ .../tests/Microsoft.VisualBasic.Tests.csproj | 3 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/Microsoft.VisualBasic/tests/ConversionsTests.cs diff --git a/src/Microsoft.VisualBasic/tests/ConversionsTests.cs b/src/Microsoft.VisualBasic/tests/ConversionsTests.cs new file mode 100644 index 000000000000..d557c4d3f5a4 --- /dev/null +++ b/src/Microsoft.VisualBasic/tests/ConversionsTests.cs @@ -0,0 +1,41 @@ +// 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 System.Globalization; +using System.Linq; +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("yes")] + [InlineData("contoso")] + public void ToBoolean_String_ThrowsOnInvalidFormat(string str) + { + Assert.Throws(() => Conversions.ToBoolean(str)); + } + + } +} diff --git a/src/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj b/src/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj index 3e0bee673b15..00bba036ceab 100644 --- a/src/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj +++ b/src/Microsoft.VisualBasic/tests/Microsoft.VisualBasic.Tests.csproj @@ -7,6 +7,7 @@ + @@ -18,4 +19,4 @@ - + \ No newline at end of file From 9cca9e406b6d68079a97629c3fc120247ce1b082 Mon Sep 17 00:00:00 2001 From: Oswald Maskens Date: Sun, 11 Feb 2018 17:25:05 +0100 Subject: [PATCH 2/2] added tests for ToBoolean fro Object --- .../tests/ConversionsTests.cs | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.VisualBasic/tests/ConversionsTests.cs b/src/Microsoft.VisualBasic/tests/ConversionsTests.cs index d557c4d3f5a4..56b2425c824b 100644 --- a/src/Microsoft.VisualBasic/tests/ConversionsTests.cs +++ b/src/Microsoft.VisualBasic/tests/ConversionsTests.cs @@ -4,8 +4,6 @@ using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; using Microsoft.VisualBasic.CompilerServices; using Xunit; @@ -30,6 +28,7 @@ public void ToBoolean_String_ReturnsExpected(string str, bool expected) } [Theory] + [InlineData(null)] [InlineData("yes")] [InlineData("contoso")] public void ToBoolean_String_ThrowsOnInvalidFormat(string str) @@ -37,5 +36,46 @@ 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())); + } } }