Exemple #1
0
        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);
        }
Exemple #2
0
        public void Clone()
        {
            var original = new GeneralStructureWeirFormula();

            ReflectionTestHelper.FillRandomValuesForValueTypeProperties(original);
            ReflectionTestHelper.AssertPublicPropertiesAreEqual(original, original.Clone());
        }
Exemple #3
0
        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));
        }