Index: src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs =================================================================== diff -u -r329 -r343 --- src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs (.../ControlTester.cs) (revision 329) +++ src/Deltares.DSoilModel.Forms.Tests/ControlTester.cs (.../ControlTester.cs) (revision 343) @@ -13,6 +13,9 @@ { public class ControlTester { + private readonly string CannotFindControlFormatString = "Cannot find {0} : {1} control."; + private readonly string InitialValueMismatchString = "Initial value mismatch"; + private readonly string ObjectDidntReceivedValueString = "The object didn't receive the value"; private KnownUnits knownUnits; private bool oldBypass; private LanguageType oldLanguage; @@ -65,9 +68,9 @@ bool isEnabledExpected) { var edit = GetPrivateField(parentControl, spinEditName) as Control; - Assert.IsNotNull(edit); - Assert.AreEqual(isVisibleExpected, edit.Visible); - Assert.AreEqual(isEnabledExpected, edit.Enabled); + Assert.IsNotNull(edit, CannotFindControlFormatString, spinEditName, ""); + Assert.AreEqual(isVisibleExpected, edit.Visible, spinEditName + ": Visible-check failed"); + 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) @@ -76,57 +79,56 @@ if (isVisibleExpected) { var edit = GetPrivateField(parentControl, spinEditName) as SpinEdit; - Assert.IsNotNull(edit); + Assert.IsNotNull(edit, CannotFindControlFormatString, spinEditName, "SpinEdit"); var initialValue = GetValue(target, outExpr); - Assert.AreEqual(initialValue, edit.Value); + Assert.AreEqual(initialValue, edit.Value, InitialValueMismatchString); - if (valueToTestWith == null) + if (valueToTestWith != null) { - return; + edit.EditValue = valueToTestWith; + Assert.AreEqual(valueToTestWith, GetValue(target, outExpr), ObjectDidntReceivedValueString); + edit.EditValue = initialValue; // restoring initial value - it might be still useful } - - edit.EditValue = valueToTestWith; - Assert.AreEqual(valueToTestWith, GetValue(target, outExpr)); - edit.EditValue = initialValue; // restoring initial value - it might be still useful } } protected void TestTextEditVisibleEnabledValue(IPropertyControl parentControl, string textEditName, bool isVisibleExpected, bool isEnabledExpected, T target, Expression> outExpr, string newValue = null) { TestControlVisibleEnabled(parentControl, textEditName, isVisibleExpected, isEnabledExpected); - var edit = GetPrivateField(parentControl, textEditName) as TextEdit; - Assert.IsNotNull(edit); + if (isVisibleExpected) + { + var edit = GetPrivateField(parentControl, textEditName) as TextEdit; + Assert.IsNotNull(edit, CannotFindControlFormatString, textEditName, "TextEdit"); - var initialValue = GetValue(target, outExpr); - Assert.AreEqual(initialValue, edit.EditValue); + var initialValue = GetValue(target, outExpr); + Assert.AreEqual(initialValue, edit.EditValue, InitialValueMismatchString); - if (newValue == null) - { - return; + if (newValue != null) + { + edit.EditValue = newValue; + Assert.AreEqual(newValue, GetValue(target, outExpr), ObjectDidntReceivedValueString); + edit.EditValue = initialValue; // restoring initial value - it might be still useful + } } - - edit.EditValue = newValue; - Assert.AreEqual(newValue, GetValue(target, outExpr)); - edit.EditValue = initialValue; // restoring initial value - it might be still useful } protected void TestLabelControlVisibleValue(IPropertyControl parentControl, string labelControlName, bool isVisibleExpected, string labelTextExpected) { TestControlVisibleEnabled(parentControl, labelControlName, isVisibleExpected, true); // labels are always enabled in DSL projects var labelControl = GetPrivateField(parentControl, labelControlName) as LabelControl; - Assert.IsNotNull(labelControl); - Assert.AreEqual(labelTextExpected, labelControl.Text); + Assert.IsNotNull(labelControl, CannotFindControlFormatString, labelControlName, "LabelControl"); + Assert.AreEqual(labelTextExpected, labelControl.Text, InitialValueMismatchString); } protected void TestGridVisibleEnabledSize(IPropertyControl parentControl, string gridName, bool isVisibleExpected, bool isEnabledExpected, int rowCount, int colCount) { TestControlVisibleEnabled(parentControl, gridName, isVisibleExpected, isEnabledExpected); var gridControl = GetPrivateField(parentControl, gridName) as GridViewControl; - Assert.IsNotNull(gridControl); - Assert.AreEqual(rowCount, gridControl.gridView1.RowCount); - Assert.AreEqual(colCount, gridControl.gridView1.Columns.Count); + Assert.IsNotNull(gridControl, CannotFindControlFormatString, gridName, "GridViewControl"); + Assert.AreEqual(rowCount, gridControl.gridView1.RowCount, "Row count mismatch"); + Assert.AreEqual(colCount, gridControl.gridView1.Columns.Count, "Columns count mismatch"); } } } \ No newline at end of file Index: src/Deltares.DSoilModel.Forms.Tests/CptControlTests.cs =================================================================== diff -u --- src/Deltares.DSoilModel.Forms.Tests/CptControlTests.cs (revision 0) +++ src/Deltares.DSoilModel.Forms.Tests/CptControlTests.cs (revision 343) @@ -0,0 +1,66 @@ +using Deltares.Geotechnics.ConePenetrationTest; +using Deltares.Geotechnics.Xsd; +using Deltares.Standard.Forms; +using NUnit.Framework; + +namespace Deltares.DSoilModel.Forms.Tests +{ + [TestFixture, RequiresSTA] + class CptControlTests : ControlTester + { + protected override IPropertyControl CreatePropertyControl() + { + return new CPTControl(); + } + + [Test] + public void ControlBindingsTest() + { + var cpt = new ConePenetrationTestData + { + X = 11.1, + Y = 22.2, + Name = "Name1", + Description = "Descr1", + GroundLevel = 33.3, + PreExcavation = 44.4, + CPTDatarows = { new CPTDatarow(), new CPTDatarow(), new CPTDatarow(), new CPTDatarow() } + }; + + PropertyControl.SelectedObject = cpt; + + TestLabelControlVisibleValue(PropertyControl, "XLabel", true, "X [m]"); + TestSpinEditVisibleEnabledValue(PropertyControl, "XEdit", true, true, cpt, c => c.X, 66.6); + TestLabelControlVisibleValue(PropertyControl, "ZLabel", true, "Y [m]"); + TestSpinEditVisibleEnabledValue(PropertyControl, "ZEdit", true, true, cpt, c => c.Y, 77.7); + TestLabelControlVisibleValue(PropertyControl, "NameLabel", true, "Naam"); + TestTextEditVisibleEnabledValue(PropertyControl, "NameEdit", true, false, cpt, c => c.Name, "NameTest"); + TestLabelControlVisibleValue(PropertyControl, "DescriptionLabel", true, "Beschrijving"); + TestTextEditVisibleEnabledValue(PropertyControl, "DescriptionEdit", true, true, cpt, c => c.Description, "DescrTest"); + + TestLabelControlVisibleValue(PropertyControl, "GroundLevelLabel", true, "Niveau maaiveld"); // TODO: no units? + TestSpinEditVisibleEnabledValue(PropertyControl, "GroundLevelEdit", true, false, cpt, c => c.GroundLevel, 88.8); + + TestLabelControlVisibleValue(PropertyControl, "PreExcavationLabel", true, "Voorontgraving"); // TODO: no units? + TestSpinEditVisibleEnabledValue(PropertyControl, "PreExcavationEdit", true, false, cpt, c => c.PreExcavation, 99.9); + + TestGridVisibleEnabledSize(PropertyControl, "CptValuesGridControl", true, true, 4, 5); + } + + [Test] + public void TestSelectedObject() + { + var cpt = new ConePenetrationTestData(); + Assert.AreNotSame(cpt, PropertyControl.SelectedObject); + + PropertyControl.SelectedObject = cpt; + Assert.AreSame(cpt, PropertyControl.SelectedObject); + } + + [Test] + public void TestIsVisible() + { + Assert.IsTrue(PropertyControl.IsVisible); + } + } +} Index: src/Deltares.DSoilModel.Forms.Tests/Deltares.DSoilModel.Forms.Tests.csproj =================================================================== diff -u -r341 -r343 --- src/Deltares.DSoilModel.Forms.Tests/Deltares.DSoilModel.Forms.Tests.csproj (.../Deltares.DSoilModel.Forms.Tests.csproj) (revision 341) +++ src/Deltares.DSoilModel.Forms.Tests/Deltares.DSoilModel.Forms.Tests.csproj (.../Deltares.DSoilModel.Forms.Tests.csproj) (revision 343) @@ -96,6 +96,7 @@ +