Index: src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs =================================================================== diff -u -r371 -r376 --- src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs (.../ControlTester.cs) (revision 371) +++ src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs (.../ControlTester.cs) (revision 376) @@ -2,6 +2,7 @@ using System.Linq.Expressions; using System.Reflection; using System.Windows.Forms; +using Deltares.Standard.Attributes; using Deltares.Standard.Forms; using Deltares.Standard.Forms.DExpress; using Deltares.Standard.Language; @@ -71,6 +72,13 @@ return prop.GetValue(target, null); } + private bool IsReadOnly(T target, Expression> outExpr) + { + var expr = (MemberExpression)outExpr.Body; + var prop = (PropertyInfo)expr.Member; + return !prop.CanWrite || prop.IsReadOnly(); + } + protected void TestControlVisibleEnabled(IPropertyControl parentControl, string spinEditName, bool isVisibleExpected, bool isEnabledExpected) { @@ -79,7 +87,7 @@ Assert.AreEqual(isEnabledExpected, edit.Enabled, spinEditName + ": Enabled-check failed"); } - protected void TestSpinEditVisibleEnabledValue(IPropertyControl parentControl, string spinEditName, bool isVisibleExpected, bool isEnabledExpected, T target, Expression> outExpr, double? valueToTestWith = null) + protected void TestSpinEditVisibleEnabledValue(IPropertyControl parentControl, string spinEditName, bool isVisibleExpected, bool isEnabledExpected, T target, Expression> outExpr, TValue valueToTestWith = default(TValue)) { TestControlVisibleEnabled(parentControl, spinEditName, isVisibleExpected, isEnabledExpected); if (isVisibleExpected) @@ -89,7 +97,7 @@ var initialValue = GetValue(target, outExpr); Assert.AreEqual(initialValue, edit.EditValue, InitialValueMismatchString); - if (valueToTestWith != null) + if (!IsReadOnly(target, outExpr)) { edit.EditValue = valueToTestWith; Assert.AreEqual(valueToTestWith, GetValue(target, outExpr), ObjectDidntReceivedValueString);