public void CloneHydroNetworkWithData() { var network = HydroNetworkHelper.GetSnakeHydroNetwork(1); var publicProperties = ReflectionTestHelper.GetPublicListProperties(network); foreach (var prop in publicProperties) { try { var value = prop.GetValue(network, null); if (value is IList) { var genericType = TypeUtils.GetFirstGenericTypeParameter(value.GetType()); var concreteType = genericType.Assembly.GetTypes().Where( t => genericType.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract).FirstOrDefault(); var instance = Activator.CreateInstance(concreteType); (value as IList).Add(instance); } } catch (Exception) { Console.WriteLine(String.Format("Unable to set property: {0}", prop)); } } var clone = (HydroNetwork)network.Clone(); TestReferenceHelper.AssertStringRepresentationOfGraphIsEqual(network, clone); }
public void Clone() { var original = new GeneralStructureWeirFormula(); ReflectionTestHelper.FillRandomValuesForValueTypeProperties(original); ReflectionTestHelper.AssertPublicPropertiesAreEqual(original, original.Clone()); }
public void Clone() { var wwtp = new WasteWaterTreatmentPlant { Geometry = new Point(15, 15), Name = "aa", LongName = "bb", Network = new HydroNetwork() }; wwtp.Attributes.Add("Milage", 15); var clone = wwtp.Clone(); ReflectionTestHelper.AssertPublicPropertiesAreEqual(wwtp, clone); }
public void Clone() { var crossSection = new CrossSectionDefinitionZW { SummerDike = new SummerDike() { CrestLevel = 1, FloodSurface = 2, TotalSurface = 3, FloodPlainLevel = 4 } }; crossSection.ZWDataTable.AddCrossSectionZWRow(4, 5, 2); var clone = (CrossSectionDefinitionZW)crossSection.Clone(); ReflectionTestHelper.AssertPublicPropertiesAreEqual(crossSection.SummerDike, clone.SummerDike); Assert.AreNotSame(crossSection.SummerDike, clone.SummerDike); Assert.IsTrue(crossSection.ZWDataTable.ContentEquals(clone.ZWDataTable)); }
public void CopyFrom() { var crossSection = new CrossSectionDefinitionZW { Thalweg = 5.0, SummerDike = new SummerDike { CrestLevel = 1, FloodSurface = 2, TotalSurface = 3, FloodPlainLevel = 4 } }; crossSection.ZWDataTable.AddCrossSectionZWRow(4, 5, 2); var copyFrom = new CrossSectionDefinitionZW { Thalweg = 1.0, SummerDike = new SummerDike { CrestLevel = 4, FloodSurface = 3, TotalSurface = 2, FloodPlainLevel = 1 } }; copyFrom.CopyFrom(crossSection); Assert.AreEqual(crossSection.Thalweg, copyFrom.Thalweg); ReflectionTestHelper.AssertPublicPropertiesAreEqual(crossSection.SummerDike, copyFrom.SummerDike); Assert.AreNotSame(crossSection.SummerDike, copyFrom.SummerDike); Assert.IsTrue(crossSection.ZWDataTable.ContentEquals(copyFrom.ZWDataTable)); }