Added unit test for ObjectExtensions TryConvertTo<DateTime>.

Modified CustomBooleanTypeConverter to accept an empty string as a FALSE.
This commit is contained in:
leekelleher
2012-11-10 14:09:27 +00:00
parent c590c6a265
commit 6c1bf4b85f
2 changed files with 32 additions and 2 deletions

View File

@@ -23,7 +23,7 @@ namespace Umbraco.Core
{
var str = (string)value;
if (str == "1") return true;
if (str == "0") return false;
if (str == "0" || str == "") return false;
}
return base.ConvertFrom(context, culture, value);

View File

@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using NUnit.Framework;
using Umbraco.Core;
@@ -67,7 +68,8 @@ namespace Umbraco.Tests
{"FALSE", false},
{"False", false},
{"false", false},
{"0", false}
{"0", false},
{"", false}
};
foreach (var testCase in testCases)
@@ -79,6 +81,34 @@ namespace Umbraco.Tests
}
}
[Test]
[TestOnlyInFullTrust]
public virtual void CanConvertStringToDateTime()
{
var dateTime = new DateTime(2012, 11, 10, 13, 14, 15);
var testCases = new Dictionary<string, bool>
{
{"2012-11-10", true},
{"2012/11/10", true},
{"10/11/2012", true},
{"11/10/2012", false},
{"Sat 10, Nov 2012", true},
{"Saturday 10, Nov 2012", true},
{"Sat 10, November 2012", true},
{"Saturday 10, November 2012", true},
{"2012-11-10 13:14:15", true},
{"", false}
};
foreach (var testCase in testCases)
{
var result = testCase.Key.TryConvertTo<DateTime>();
Assert.IsTrue(result.Success);
Assert.AreEqual(DateTime.Equals(dateTime.Date, result.Result.Date), testCase.Value);
}
}
/// <summary>
/// Run once before each test in derived test fixtures.
/// </summary>