mirror of
https://github.com/Tyrrrz/CliFx.git
synced 2025-10-25 15:19:17 +00:00
70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using CliFx.Services;
|
|
using CliFx.Tests.TestObjects;
|
|
using NUnit.Framework;
|
|
|
|
namespace CliFx.Tests
|
|
{
|
|
[TestFixture]
|
|
public class CommandOptionConverterTests
|
|
{
|
|
private static IEnumerable<TestCaseData> GetData_ConvertOption()
|
|
{
|
|
yield return new TestCaseData("value", typeof(string), "value");
|
|
|
|
yield return new TestCaseData("value", typeof(object), "value");
|
|
|
|
yield return new TestCaseData("true", typeof(bool), true);
|
|
|
|
yield return new TestCaseData("false", typeof(bool), false);
|
|
|
|
yield return new TestCaseData(null, typeof(bool), true);
|
|
|
|
yield return new TestCaseData("123", typeof(int), 123);
|
|
|
|
yield return new TestCaseData("123.45", typeof(double), 123.45);
|
|
|
|
yield return new TestCaseData("28 Apr 1995", typeof(DateTime), new DateTime(1995, 04, 28));
|
|
|
|
yield return new TestCaseData("28 Apr 1995", typeof(DateTimeOffset), new DateTimeOffset(new DateTime(1995, 04, 28)));
|
|
|
|
yield return new TestCaseData("00:14:59", typeof(TimeSpan), new TimeSpan(00, 14, 59));
|
|
|
|
yield return new TestCaseData("value2", typeof(TestEnum), TestEnum.Value2);
|
|
|
|
yield return new TestCaseData("666", typeof(int?), 666);
|
|
|
|
yield return new TestCaseData(null, typeof(int?), null);
|
|
|
|
yield return new TestCaseData("value3", typeof(TestEnum?), TestEnum.Value3);
|
|
|
|
yield return new TestCaseData(null, typeof(TestEnum?), null);
|
|
|
|
yield return new TestCaseData("01:00:00", typeof(TimeSpan?), new TimeSpan(01, 00, 00));
|
|
|
|
yield return new TestCaseData(null, typeof(TimeSpan?), null);
|
|
|
|
yield return new TestCaseData("value", typeof(TestStringConstructable), new TestStringConstructable("value"));
|
|
|
|
yield return new TestCaseData("value", typeof(TestStringParseable), TestStringParseable.Parse("value"));
|
|
}
|
|
|
|
[Test]
|
|
[TestCaseSource(nameof(GetData_ConvertOption))]
|
|
public void ConvertOption_Test(string value, Type targetType, object expectedConvertedValue)
|
|
{
|
|
// Arrange
|
|
var converter = new CommandOptionConverter();
|
|
|
|
// Act
|
|
var convertedValue = converter.ConvertOption(value, targetType);
|
|
|
|
// Assert
|
|
Assert.That(convertedValue, Is.EqualTo(expectedConvertedValue));
|
|
|
|
if (convertedValue != null)
|
|
Assert.That(convertedValue, Is.AssignableTo(targetType));
|
|
}
|
|
}
|
|
} |