Merge pull request #11076 from umbraco/v9/bugfix/9661-bool-conversion

Fixes #9661 boolean conversion
This commit is contained in:
Bjarke Berg
2021-09-10 21:01:51 +02:00
committed by GitHub
2 changed files with 40 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.ComponentModel;
namespace Umbraco.Cms.Core
@@ -24,6 +24,8 @@ namespace Umbraco.Cms.Core
var str = (string)value;
if (str == null || str.Length == 0 || str == "0") return false;
if (str == "1") return true;
if (str.Equals("Yes", StringComparison.OrdinalIgnoreCase)) return true;
if (str.Equals("No", StringComparison.OrdinalIgnoreCase)) return false;
}
return base.ConvertFrom(context, culture, value);

View File

@@ -1,4 +1,4 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
using System;
@@ -10,6 +10,42 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.CoreThings
[TestFixture]
public class TryConvertToTests
{
[Test]
public void ConvertToBoolTest()
{
var conv = 1.TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(true, conv.Result);
conv = "1".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(true, conv.Result);
conv = 0.TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(false, conv.Result);
conv = "0".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(false, conv.Result);
conv = "Yes".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(true, conv.Result);
conv = "yes".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(true, conv.Result);
conv = "No".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(false, conv.Result);
conv = "no".TryConvertTo<bool>();
Assert.IsTrue(conv);
Assert.AreEqual(false, conv.Result);
}
[Test]
public void ConvertToIntegerTest()
{