public void TestArgumentParserUtils_TrySetPropertyValue_Single() { IDictionary <string, ArgumentData> data = ArgumentParserUtils.GetArgumentData <TestParams>(); TestParams testParams = new TestParams(); Assert.IsTrue(testParams.TrySetPropertyValue(data["s"].Property, "value")); Assert.AreEqual("value", testParams.String); Assert.IsTrue(testParams.TrySetPropertyValue(data["iv"].Property, "7")); Assert.AreEqual(7, testParams.Count); Assert.IsTrue(testParams.TrySetPropertyValue(data["ev"].Property, "First")); Assert.AreEqual(TestOrdinal.First, testParams.OrdinalVal); Assert.IsTrue(testParams.TrySetPropertyValue(data["f"].Property, "true")); Assert.AreEqual(true, testParams.IsFree); }
public void TestArgumentParserUtils_TrySetPropertyValue_Invalid() { IDictionary <string, ArgumentData> data = ArgumentParserUtils.GetArgumentData <TestParams>(); TestParams testParams = new TestParams(); Assert.IsFalse(testParams.TrySetPropertyValue(data["iv"].Property, "NaN")); Assert.IsFalse(testParams.TrySetPropertyValue(data["ev"].Property, "Sec")); Assert.IsFalse(testParams.TrySetPropertyValue(data["df"].Property, "NotTrue")); Assert.IsFalse(testParams.TrySetPropertyValue(data["ia"].Property, new[] { "NaN", "1" })); Assert.IsFalse(testParams.TrySetPropertyValue(data["ea"].Property, new[] { "First", "Sec" })); // Ensure error messages are displayed IList <string> errorLog = Logger.ErrorLog; Assert.AreEqual(5, errorLog.Count); Assert.AreEqual("Error: Given value 'NaN' should be of type 'Int32'", errorLog[0]); Assert.AreEqual("Error: Unknown value 'Sec' given. Valid values - [First, Second, Third]", errorLog[1]); Assert.AreEqual("Error: Given value 'NotTrue' should be of type 'Boolean'", errorLog[2]); Assert.AreEqual("Error: Given values 'NaN, 1' should be a list of type 'Int32'", errorLog[3]); Assert.AreEqual("Error: Given list 'First, Sec' contains an unknown value. Valid values - [First, Second, Third]", errorLog[4]); }
public void TestArgumentParserUtils_TrySetPropertyValue_Array() { IDictionary <string, ArgumentData> data = ArgumentParserUtils.GetArgumentData <TestParams>(); TestParams testParams = new TestParams(); // string array Assert.IsTrue(testParams.TrySetPropertyValue(data["a"].Property, new[] { "value1", "value2" })); Assert.AreEqual(2, testParams.Array.Count()); Assert.IsTrue(testParams.Array.Contains("value1")); Assert.IsTrue(testParams.Array.Contains("value2")); // int array Assert.IsTrue(testParams.TrySetPropertyValue(data["ia"].Property, new[] { "2", "3" })); Assert.AreEqual(2, testParams.Array.Count()); Assert.IsTrue(testParams.IntArray.Contains(2)); Assert.IsTrue(testParams.IntArray.Contains(2)); // Enum array Assert.IsTrue(testParams.TrySetPropertyValue(data["ea"].Property, new[] { "First", "Second" })); Assert.AreEqual(2, testParams.Array.Count()); Assert.IsTrue(testParams.EnumArray.Contains(TestOrdinal.First)); Assert.IsTrue(testParams.EnumArray.Contains(TestOrdinal.Second)); }