Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Core/CoreThings/TryConvertToTests.cs
Paul Johnson 00133e880d Move test projects from src/ to tests/ (#11357)
* Update gitignore

* Move csproj

* Update project references

* Update solutions

* Update build scripts

* Tests used to share editorconfig with projects in src

* Fix broken tests.

* Stop copying around .editorconfig

merged root one with linting

* csharp_style_expression_bodied -> suggestion

* Move StyleCop rulesets to matching directories and update shared build properties

* Remove legacy build files, update NuGet.cofig and solution files

* Restore myget source

* Clean up .gitignore

* Update .gitignore

* Move new test classes to tests after merge

* Gitignore + nuget config

* Move new test

Co-authored-by: Ronald Barendse <ronald@barend.se>
2021-10-18 08:14:04 +01:00

136 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright (c) Umbraco.
// See LICENSE for more details.
using System;
using System.Globalization;
using NUnit.Framework;
using Umbraco.Extensions;
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]
[TestCase("en-US", -1, ExpectedResult = -1)]
[TestCase("en-US", "-1", ExpectedResult = -1)]
[TestCase("en-US", "100", ExpectedResult = 100)]
[TestCase("en-US", "100.000", ExpectedResult = 100)]
[TestCase("en-US", "100,000", ExpectedResult = 100)]
[TestCase("en-US", "100.001", ExpectedResult = 100)]
[TestCase("en-US", 100, ExpectedResult = 100)]
[TestCase("en-US", 100.000, ExpectedResult = 100)]
[TestCase("en-US", 100.001, ExpectedResult = 100)]
[TestCase("sv-SE", -1, ExpectedResult = -1)]
[TestCase("sv-SE", "1", ExpectedResult = -1)] // Note '' vs '-'
[TestCase("sv-SE", "100", ExpectedResult = 100)]
[TestCase("sv-SE", "100.000", ExpectedResult = 100)]
[TestCase("sv-SE", "100,000", ExpectedResult = 100)]
[TestCase("sv-SE", "100.001", ExpectedResult = 100)]
[TestCase("sv-SE", 100, ExpectedResult = 100)]
[TestCase("sv-SE", 100.000, ExpectedResult = 100)]
[TestCase("sv-SE", 100.001, ExpectedResult = 100)]
[TestCase("da-DK", "-1", ExpectedResult = -1)]
[TestCase("da-DK", -1, ExpectedResult = -1)]
[TestCase("da-DK", "100", ExpectedResult = 100)]
[TestCase("da-DK", "100.000", ExpectedResult = 100)]
[TestCase("da-DK", "100,000", ExpectedResult = 100)]
[TestCase("da-DK", "100.001", ExpectedResult = 100)]
[TestCase("da-DK", 100, ExpectedResult = 100)]
[TestCase("da-DK", 100.000, ExpectedResult = 100)]
[TestCase("da-DK", 100.001, ExpectedResult = 100)]
public int ConvertToIntegerTest(string culture, object input)
{
if (culture is not null)
{
CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(culture);
}
var conv = input.TryConvertTo<int>();
Assert.IsTrue(conv);
return conv.Result;
}
[Test]
public void ConvertToDecimalTest()
{
var conv = "100".TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
conv = "100.000".TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
conv = "100,000".TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
conv = "100.001".TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100.001m, conv.Result);
conv = 100m.TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
conv = 100.000m.TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
conv = 100.001m.TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100.001m, conv.Result);
conv = 100.TryConvertTo<decimal>();
Assert.IsTrue(conv);
Assert.AreEqual(100m, conv.Result);
}
[Test]
public void ConvertToDateTimeTest()
{
var conv = "2016-06-07".TryConvertTo<DateTime>();
Assert.IsTrue(conv);
Assert.AreEqual(new DateTime(2016, 6, 7), conv.Result);
}
}
}