Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverter.cs =================================================================== diff -u -ra13245503f96cce3c9040a1e85699e4f03b5fe3c -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverter.cs (.../ConfigurationDikeSoilScenarioTypeConverter.cs) (revision a13245503f96cce3c9040a1e85699e4f03b5fe3c) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverter.cs (.../ConfigurationDikeSoilScenarioTypeConverter.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -37,6 +37,12 @@ || base.CanConvertTo(context, destinationType); } + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + return sourceType == typeof(MacroStabilityInwardsDikeSoilScenario) + || base.CanConvertTo(context, sourceType); + } + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) @@ -75,5 +81,44 @@ } return base.ConvertTo(context, culture, value, destinationType); } + + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + { + var text = value as string; + if (text != null) + { + switch (text) + { + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioClayDikeOnClay: + return ConfigurationDikeSoilScenario.ClayDikeOnClay; + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioSandDikeOnClay: + return ConfigurationDikeSoilScenario.SandDikeOnClay; + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioClayDikeOnSand: + return ConfigurationDikeSoilScenario.ClayDikeOnSand; + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioSandDikeOnSand: + return ConfigurationDikeSoilScenario.SandDikeOnSand; + default: + throw new NotSupportedException(); + } + } + var dikeSoilScenario = value as MacroStabilityInwardsDikeSoilScenario?; + if (dikeSoilScenario != null) + { + switch (dikeSoilScenario) + { + case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay: + return ConfigurationDikeSoilScenario.ClayDikeOnClay; + case MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay: + return ConfigurationDikeSoilScenario.SandDikeOnClay; + case MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand: + return ConfigurationDikeSoilScenario.ClayDikeOnSand; + case MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand: + return ConfigurationDikeSoilScenario.SandDikeOnSand; + default: + throw new NotSupportedException(); + } + } + return base.ConvertFrom(context, culture, value); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationGridDeterminationTypeConverter.cs =================================================================== diff -u -ra13245503f96cce3c9040a1e85699e4f03b5fe3c -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationGridDeterminationTypeConverter.cs (.../ConfigurationGridDeterminationTypeConverter.cs) (revision a13245503f96cce3c9040a1e85699e4f03b5fe3c) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationGridDeterminationTypeConverter.cs (.../ConfigurationGridDeterminationTypeConverter.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -37,6 +37,12 @@ || base.CanConvertTo(context, destinationType); } + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + return sourceType == typeof(MacroStabilityInwardsGridDeterminationType) + || base.CanConvertTo(context, sourceType); + } + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) @@ -67,5 +73,36 @@ } return base.ConvertTo(context, culture, value, destinationType); } + + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + { + var text = value as string; + if (text != null) + { + switch (text) + { + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.GridDeterminationTypeAutomatic: + return ConfigurationGridDeterminationType.Automatic; + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.GridDeterminationTypeManual: + return ConfigurationGridDeterminationType.Manual; + default: + throw new NotSupportedException(); + } + } + var gridDeterminationType = value as MacroStabilityInwardsGridDeterminationType?; + if (gridDeterminationType != null) + { + switch (gridDeterminationType) + { + case MacroStabilityInwardsGridDeterminationType.Automatic: + return ConfigurationGridDeterminationType.Automatic; + case MacroStabilityInwardsGridDeterminationType.Manual: + return ConfigurationGridDeterminationType.Manual; + default: + throw new NotSupportedException(); + } + } + return base.ConvertFrom(context, culture, value); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverter.cs =================================================================== diff -u -rb1704785efb083ed440cff2afe2199db168fab07 -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverter.cs (.../ConfigurationTangentLineDeterminationTypeConverter.cs) (revision b1704785efb083ed440cff2afe2199db168fab07) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverter.cs (.../ConfigurationTangentLineDeterminationTypeConverter.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -37,6 +37,12 @@ || base.CanConvertTo(context, destinationType); } + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + return sourceType == typeof(MacroStabilityInwardsTangentLineDeterminationType) + || base.CanConvertTo(context, sourceType); + } + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) @@ -67,5 +73,36 @@ } return base.ConvertTo(context, culture, value, destinationType); } + + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + { + var text = value as string; + if (text != null) + { + switch (text) + { + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.TangentLineDeterminationTypeLayerSeparated: + return ConfigurationTangentLineDeterminationType.LayerSeparated; + case MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.TangentLineDeterminationTypeSpecified: + return ConfigurationTangentLineDeterminationType.Specified; + default: + throw new NotSupportedException(); + } + } + var tangentLineDeterminationType = value as MacroStabilityInwardsTangentLineDeterminationType?; + if (tangentLineDeterminationType != null) + { + switch (tangentLineDeterminationType) + { + case MacroStabilityInwardsTangentLineDeterminationType.LayerSeparated: + return ConfigurationTangentLineDeterminationType.LayerSeparated; + case MacroStabilityInwardsTangentLineDeterminationType.Specified: + return ConfigurationTangentLineDeterminationType.Specified; + default: + throw new NotSupportedException(); + } + } + return base.ConvertFrom(context, culture, value); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverterTest.cs =================================================================== diff -u -ra13245503f96cce3c9040a1e85699e4f03b5fe3c -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverterTest.cs (.../ConfigurationDikeSoilScenarioTypeConverterTest.cs) (revision a13245503f96cce3c9040a1e85699e4f03b5fe3c) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationDikeSoilScenarioTypeConverterTest.cs (.../ConfigurationDikeSoilScenarioTypeConverterTest.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -43,17 +43,20 @@ } [Test] - [TestCaseSource(nameof(GetConvertToSupportedTypes))] - public void CanConvertTo_String_ReturnTrue(Type supportedType) + [TestCaseSource(nameof(GetSupportedTypes), new object[] { + "CanConvertTo_{0}_ReturnTrue" + })] + public void CanConvertTo_SupportedType_ReturnTrue(Type supportedType) + { // Setup var converter = new ConfigurationDikeSoilScenarioTypeConverter(); // Call - bool convertTo = converter.CanConvertTo(supportedType); + bool canConvertTo = converter.CanConvertTo(supportedType); // Assert - Assert.IsTrue(convertTo); + Assert.IsTrue(canConvertTo); } [Test] @@ -63,23 +66,23 @@ var converter = new ConfigurationDikeSoilScenarioTypeConverter(); // Call - bool convertTo = converter.CanConvertTo(typeof(object)); + bool canConvertTo = converter.CanConvertTo(typeof(object)); // Assert - Assert.IsFalse(convertTo); + Assert.IsFalse(canConvertTo); } [Test] - [TestCaseSource(nameof(SupporterConvertions), new object[] + [TestCaseSource(nameof(SupportedConvertions), new object[] { - "ConvertTo_{2}_Returns{1}" + "ConvertTo_{1}_ReturnsExpectedResult" })] public void ConvertTo_VariousCases_ReturnExpectedResult(ConfigurationDikeSoilScenario value, - Type convertToType, object expectedResult) { // Setup var converter = new ConfigurationDikeSoilScenarioTypeConverter(); + Type convertToType = expectedResult.GetType(); // Call object result = converter.ConvertTo(value, convertToType); @@ -89,16 +92,15 @@ } [Test] - [TestCaseSource(nameof(InvalidConvertions), new object[] + [TestCaseSource(nameof(InvalidConvertTo), new object[] { "ConvertTo_Convert{2}to{1}_ThrowsNotSupportedException" })] - public void ConvertTo_Invalid_ThrowsNotSupportedException(ConfigurationDikeSoilScenario invalidValue, - Type convertToType) + public void ConvertTo_InvalidCases_ThrowsNotSupportedException(ConfigurationDikeSoilScenario invalidValue, + Type convertToType) { // Setup var converter = new ConfigurationDikeSoilScenarioTypeConverter(); - ; // Call TestDelegate call = () => converter.ConvertTo(invalidValue, convertToType); @@ -107,57 +109,109 @@ Assert.Throws(call); } - private static IEnumerable GetConvertToSupportedTypes() + [Test] + [TestCaseSource(nameof(GetSupportedTypes), new object[] { - const string testName = "CanConvertTo_{0}_ReturnTrue"; + "CanConvertFrom_{0}_ReturnTrue" + })] + public void CanConvertFrom_SupportedType_ReturnTrue(Type supportedType) + { + // Setup + var converter = new ConfigurationDikeSoilScenarioTypeConverter(); + // Call + bool canConvertFrom = converter.CanConvertFrom(supportedType); + + // Assert + Assert.IsTrue(canConvertFrom); + } + + [Test] + public void CanConvertFrom_OtherType_ReturnFalse() + { + // Setup + var converter = new ConfigurationDikeSoilScenarioTypeConverter(); + + // Call + bool canConvertFrom = converter.CanConvertFrom(typeof(object)); + + // Assert + Assert.IsFalse(canConvertFrom); + } + + [Test] + [TestCaseSource(nameof(SupportedConvertions), new object[] + { + "ConvertFrom_{1}_ReturnExpectedConfigurationDikeSoilScenario" + })] + public void ConvertFrom_VariousCases_ReturnExpectedConfigurationDikeSoilScenario(ConfigurationDikeSoilScenario expectedResult, + object value) + { + // Setup + var converter = new ConfigurationDikeSoilScenarioTypeConverter(); + + // Call + object result = converter.ConvertFrom(value); + + // Assert + Assert.AreEqual(expectedResult, result); + } + + [Test] + [TestCaseSource(nameof(InvalidConvertFrom), new object[] + { + "ConvertFrom_{0}_ThrowsNotSupportedException" + })] + public void ConvertFrom_InvalidValue_ThrowsNotSupportedException(object invalidValue) + { + // Setup + var converter = new ConfigurationDikeSoilScenarioTypeConverter(); + + // Call + TestDelegate call = () => converter.ConvertFrom(invalidValue); + + // Assert + Assert.Throws(call); + } + + private static IEnumerable GetSupportedTypes(string testName) + { yield return new TestCaseData(typeof(string)) .SetName(testName); yield return new TestCaseData(typeof(MacroStabilityInwardsDikeSoilScenario)) .SetName(testName); } - private static IEnumerable SupporterConvertions(string testName) + private static IEnumerable SupportedConvertions(string testName) { - Type stringType = typeof(string); - Type dikeSoilScenarioType = typeof(MacroStabilityInwardsDikeSoilScenario); - yield return new TestCaseData(ConfigurationDikeSoilScenario.ClayDikeOnClay, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioClayDikeOnClay) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.SandDikeOnClay, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioSandDikeOnClay) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.ClayDikeOnSand, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioClayDikeOnSand) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.SandDikeOnSand, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.DikeSoilScenarioSandDikeOnSand) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.ClayDikeOnClay, - dikeSoilScenarioType, MacroStabilityInwardsDikeSoilScenario.ClayDikeOnClay) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.SandDikeOnClay, - dikeSoilScenarioType, MacroStabilityInwardsDikeSoilScenario.SandDikeOnClay) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.ClayDikeOnSand, - dikeSoilScenarioType, MacroStabilityInwardsDikeSoilScenario.ClayDikeOnSand) .SetName(testName); yield return new TestCaseData(ConfigurationDikeSoilScenario.SandDikeOnSand, - dikeSoilScenarioType, MacroStabilityInwardsDikeSoilScenario.SandDikeOnSand) .SetName(testName); } - private static IEnumerable InvalidConvertions(string testName) + private static IEnumerable InvalidConvertTo(string testName) { yield return new TestCaseData((ConfigurationDikeSoilScenario) 99999, typeof(string)) @@ -166,6 +220,22 @@ yield return new TestCaseData((ConfigurationDikeSoilScenario) 99999, typeof(MacroStabilityInwardsDikeSoilScenario)) .SetName(testName); + + yield return new TestCaseData((ConfigurationDikeSoilScenario) 99999, + typeof(object)) + .SetName(testName); } + + private static IEnumerable InvalidConvertFrom(string testName) + { + yield return new TestCaseData("invalid value") + .SetName(testName); + + yield return new TestCaseData((MacroStabilityInwardsDikeSoilScenario) 99999) + .SetName(testName); + + yield return new TestCaseData(new object()) + .SetName(testName); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationGridDeterminationTypeConverterTest.cs =================================================================== diff -u -ra13245503f96cce3c9040a1e85699e4f03b5fe3c -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationGridDeterminationTypeConverterTest.cs (.../ConfigurationGridDeterminationTypeConverterTest.cs) (revision a13245503f96cce3c9040a1e85699e4f03b5fe3c) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationGridDeterminationTypeConverterTest.cs (.../ConfigurationGridDeterminationTypeConverterTest.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -43,17 +43,20 @@ } [Test] - [TestCaseSource(nameof(GetConvertToSupportedTypes))] - public void CanConvertTo_String_ReturnTrue(Type supportedType) + [TestCaseSource(nameof(GetSupportedTypes), new object[] { + "CanConvertTo_{0}_ReturnTrue" + })] + public void CanConvertTo_SupportedType_ReturnTrue(Type supportedType) + { // Setup var converter = new ConfigurationGridDeterminationTypeConverter(); // Call - bool convertTo = converter.CanConvertTo(supportedType); + bool canConvertTo = converter.CanConvertTo(supportedType); // Assert - Assert.IsTrue(convertTo); + Assert.IsTrue(canConvertTo); } [Test] @@ -63,23 +66,23 @@ var converter = new ConfigurationGridDeterminationTypeConverter(); // Call - bool convertTo = converter.CanConvertTo(typeof(object)); + bool canConvertTo = converter.CanConvertTo(typeof(object)); // Assert - Assert.IsFalse(convertTo); + Assert.IsFalse(canConvertTo); } [Test] - [TestCaseSource(nameof(SupporterConvertions), new object[] + [TestCaseSource(nameof(SupportedConvertions), new object[] { - "ConvertTo_{2}_Returns{1}" + "ConvertTo_{1}_ReturnsExpectedResult" })] public void ConvertTo_VariousCases_ReturnExpectedResult(ConfigurationGridDeterminationType value, - Type convertToType, object expectedResult) { // Setup var converter = new ConfigurationGridDeterminationTypeConverter(); + Type convertToType = expectedResult.GetType(); // Call object result = converter.ConvertTo(value, convertToType); @@ -89,16 +92,15 @@ } [Test] - [TestCaseSource(nameof(InvalidConvertions), new object[] + [TestCaseSource(nameof(InvalidConvertTo), new object[] { "ConvertTo_Convert{2}to{1}_ThrowsNotSupportedException" })] - public void ConvertTo_Invalid_ThrowsNotSupportedException(ConfigurationGridDeterminationType invalidValue, - Type convertToType) + public void ConvertTo_InvalidCases_ThrowsNotSupportedException(ConfigurationGridDeterminationType invalidValue, + Type convertToType) { // Setup var converter = new ConfigurationGridDeterminationTypeConverter(); - ; // Call TestDelegate call = () => converter.ConvertTo(invalidValue, convertToType); @@ -107,41 +109,97 @@ Assert.Throws(call); } - private static IEnumerable GetConvertToSupportedTypes() + [Test] + [TestCaseSource(nameof(GetSupportedTypes), new object[] { - const string testName = "CanConvertTo_{0}_ReturnTrue"; + "CanConvertFrom_{0}_ReturnTrue" + })] + public void CanConvertFrom_SupportedType_ReturnTrue(Type supportedType) + { + // Setup + var converter = new ConfigurationGridDeterminationTypeConverter(); + // Call + bool canConvertFrom = converter.CanConvertFrom(supportedType); + + // Assert + Assert.IsTrue(canConvertFrom); + } + + [Test] + public void CanConvertFrom_OtherType_ReturnFalse() + { + // Setup + var converter = new ConfigurationGridDeterminationTypeConverter(); + + // Call + bool canConvertFrom = converter.CanConvertFrom(typeof(object)); + + // Assert + Assert.IsFalse(canConvertFrom); + } + + [Test] + [TestCaseSource(nameof(SupportedConvertions), new object[] + { + "ConvertFrom_{1}_ReturnExpectedConfigurationGridDeterminationType" + })] + public void ConvertFrom_VariousCases_ReturnExpecteConfigurationGridDeterminationType(ConfigurationGridDeterminationType expectedResult, + object value) + { + // Setup + var converter = new ConfigurationGridDeterminationTypeConverter(); + + // Call + object result = converter.ConvertFrom(value); + + // Assert + Assert.AreEqual(expectedResult, result); + } + + [Test] + [TestCaseSource(nameof(InvalidConvertFrom), new object[] + { + "ConvertFrom_{0}_ThrowsNotSupportedException" + })] + public void ConvertFrom_InvalidValue_ThrowsNotSupportedException(object invalidValue) + { + // Setup + var converter = new ConfigurationGridDeterminationTypeConverter(); + + // Call + TestDelegate call = () => converter.ConvertFrom(invalidValue); + + // Assert + Assert.Throws(call); + } + + private static IEnumerable GetSupportedTypes(string testName) + { yield return new TestCaseData(typeof(string)) .SetName(testName); yield return new TestCaseData(typeof(MacroStabilityInwardsGridDeterminationType)) .SetName(testName); } - private static IEnumerable SupporterConvertions(string testName) + private static IEnumerable SupportedConvertions(string testName) { - Type stringType = typeof(string); - Type dikeSoilScenarioType = typeof(MacroStabilityInwardsGridDeterminationType); - yield return new TestCaseData(ConfigurationGridDeterminationType.Automatic, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.GridDeterminationTypeAutomatic) .SetName(testName); yield return new TestCaseData(ConfigurationGridDeterminationType.Manual, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.GridDeterminationTypeManual) .SetName(testName); yield return new TestCaseData(ConfigurationGridDeterminationType.Automatic, - dikeSoilScenarioType, MacroStabilityInwardsGridDeterminationType.Automatic) .SetName(testName); yield return new TestCaseData(ConfigurationGridDeterminationType.Manual, - dikeSoilScenarioType, MacroStabilityInwardsGridDeterminationType.Manual) .SetName(testName); } - private static IEnumerable InvalidConvertions(string testName) + private static IEnumerable InvalidConvertTo(string testName) { yield return new TestCaseData((ConfigurationGridDeterminationType) 99999, typeof(string)) @@ -150,6 +208,22 @@ yield return new TestCaseData((ConfigurationGridDeterminationType) 99999, typeof(MacroStabilityInwardsGridDeterminationType)) .SetName(testName); + + yield return new TestCaseData((ConfigurationGridDeterminationType) 99999, + typeof(object)) + .SetName(testName); } + + private static IEnumerable InvalidConvertFrom(string testName) + { + yield return new TestCaseData("invalid value") + .SetName(testName); + + yield return new TestCaseData((MacroStabilityInwardsGridDeterminationType) 99999) + .SetName(testName); + + yield return new TestCaseData(new object()) + .SetName(testName); + } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverterTest.cs =================================================================== diff -u -rb1704785efb083ed440cff2afe2199db168fab07 -reaf21c716bc213fc83b354aeccc1316a42a386e5 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverterTest.cs (.../ConfigurationTangentLineDeterminationTypeConverterTest.cs) (revision b1704785efb083ed440cff2afe2199db168fab07) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/Helpers/ConfigurationTangentLineDeterminationTypeConverterTest.cs (.../ConfigurationTangentLineDeterminationTypeConverterTest.cs) (revision eaf21c716bc213fc83b354aeccc1316a42a386e5) @@ -43,17 +43,20 @@ } [Test] - [TestCaseSource(nameof(GetConvertToSupportedTypes))] - public void CanConvertTo_String_ReturnTrue(Type supportedType) + [TestCaseSource(nameof(GetSupportedTypes), new object[] { + "CanConvertTo_{0}_ReturnTrue" + })] + public void CanConvertTo_SupportedType_ReturnTrue(Type supportedType) + { // Setup var converter = new ConfigurationTangentLineDeterminationTypeConverter(); // Call - bool convertTo = converter.CanConvertTo(supportedType); + bool canConvertTo = converter.CanConvertTo(supportedType); // Assert - Assert.IsTrue(convertTo); + Assert.IsTrue(canConvertTo); } [Test] @@ -70,16 +73,16 @@ } [Test] - [TestCaseSource(nameof(SupporterConvertions), new object[] + [TestCaseSource(nameof(SupportedConvertions), new object[] { - "ConvertTo_{2}_Returns{1}" + "ConvertTo_{1}_ReturnsExpectedResult" })] public void ConvertTo_VariousCases_ReturnExpectedResult(ConfigurationTangentLineDeterminationType value, - Type convertToType, object expectedResult) { // Setup var converter = new ConfigurationTangentLineDeterminationTypeConverter(); + Type convertToType = expectedResult.GetType(); // Call object result = converter.ConvertTo(value, convertToType); @@ -98,7 +101,6 @@ { // Setup var converter = new ConfigurationTangentLineDeterminationTypeConverter(); - ; // Call TestDelegate call = () => converter.ConvertTo(invalidValue, convertToType); @@ -107,36 +109,92 @@ Assert.Throws(call); } - private static IEnumerable GetConvertToSupportedTypes() + [Test] + [TestCaseSource(nameof(GetSupportedTypes), new object[] { - const string testName = "CanConvertTo_{0}_ReturnTrue"; + "CanConvertFrom_{0}_ReturnTrue" + })] + public void CanConvertFrom_SupportedType_ReturnTrue(Type supportedType) + { + // Setup + var converter = new ConfigurationTangentLineDeterminationTypeConverter(); + // Call + bool canConvertFrom = converter.CanConvertFrom(supportedType); + + // Assert + Assert.IsTrue(canConvertFrom); + } + + [Test] + public void CanConvertFrom_OtherType_ReturnFalse() + { + // Setup + var converter = new ConfigurationTangentLineDeterminationTypeConverter(); + + // Call + bool canConvertFrom = converter.CanConvertFrom(typeof(object)); + + // Assert + Assert.IsFalse(canConvertFrom); + } + + [Test] + [TestCaseSource(nameof(SupportedConvertions), new object[] + { + "ConvertFrom_{1}_ReturnExpectedConfigurationTangentLineDeterminationType" + })] + public void ConvertFrom_VariousCases_ReturnExpectedConfigurationTangentLineDeterminationType(ConfigurationTangentLineDeterminationType expectedResult, + object value) + { + // Setup + var converter = new ConfigurationTangentLineDeterminationTypeConverter(); + + // Call + object result = converter.ConvertFrom(value); + + // Assert + Assert.AreEqual(expectedResult, result); + } + + [Test] + [TestCaseSource(nameof(InvalidConvertFrom), new object[] + { + "ConvertFrom_{0}_ThrowsNotSupportedException" + })] + public void ConvertFrom_InvalidValue_ThrowsNotSupportedException(object invalidValue) + { + // Setup + var converter = new ConfigurationTangentLineDeterminationTypeConverter(); + + // Call + TestDelegate call = () => converter.ConvertFrom(invalidValue); + + // Assert + Assert.Throws(call); + } + + private static IEnumerable GetSupportedTypes(string testName) + { yield return new TestCaseData(typeof(string)) .SetName(testName); yield return new TestCaseData(typeof(MacroStabilityInwardsTangentLineDeterminationType)) .SetName(testName); } - private static IEnumerable SupporterConvertions(string testName) + private static IEnumerable SupportedConvertions(string testName) { - Type stringType = typeof(string); - Type tangentLineDeterminationType = typeof(MacroStabilityInwardsTangentLineDeterminationType); - yield return new TestCaseData(ConfigurationTangentLineDeterminationType.LayerSeparated, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.TangentLineDeterminationTypeLayerSeparated) .SetName(testName); yield return new TestCaseData(ConfigurationTangentLineDeterminationType.Specified, - stringType, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.TangentLineDeterminationTypeSpecified) .SetName(testName); yield return new TestCaseData(ConfigurationTangentLineDeterminationType.LayerSeparated, - tangentLineDeterminationType, MacroStabilityInwardsTangentLineDeterminationType.LayerSeparated) .SetName(testName); yield return new TestCaseData(ConfigurationTangentLineDeterminationType.Specified, - tangentLineDeterminationType, MacroStabilityInwardsTangentLineDeterminationType.Specified) .SetName(testName); } @@ -150,6 +208,22 @@ yield return new TestCaseData((ConfigurationTangentLineDeterminationType) 99999, typeof(MacroStabilityInwardsTangentLineDeterminationType)) .SetName(testName); + + yield return new TestCaseData((ConfigurationTangentLineDeterminationType) 99999, + typeof(object)) + .SetName(testName); } + + private static IEnumerable InvalidConvertFrom(string testName) + { + yield return new TestCaseData("invalid value") + .SetName(testName); + + yield return new TestCaseData((MacroStabilityInwardsTangentLineDeterminationType) 99999) + .SetName(testName); + + yield return new TestCaseData(new object()) + .SetName(testName); + } } } \ No newline at end of file