Exemple #1
0
        internal static bool ValidateDomain(dynamic a, MockDomain b)
        {
            if (a == null && b == null)
                return true;

            ValidateC(a as MockClassC, b);

            if (a.ADomain == null && b.ADomain == null)
                return true;

            ValidateA(a.ADomain, b.ADomain);

            if (a.BDomain == null && b.BDomain == null)
                return true;

            ValidateB(a.BDomain, b.BDomain);

            if (a.CDomain == null && b.CDomain == null)
                return true;

            ValidateC(a.CDomain, b.CDomain);

            if (a.CDomains == null && b.CDomains == null)
                return true;

            Assert.AreEqual(a.CDomains.Count, b.CDomains.Count);
            for (var i = 0; i < a.CDomains.Count; i++)
                ValidateC(a.CDomains[i], b.CDomains[i]);

            if (a.BDomains == null && b.BDomains == null)
                return true;

            Assert.AreEqual(a.BDomains.Length, b.BDomains.Length);
            for (var i = 0; i < a.BDomains.Length; i++)
                ValidateB(a.BDomains[i], b.BDomains[i]);

            if (a.MyHashMash != null)
            {
                Assert.IsNotNull(b.MyHashMash);
                Assert.AreEqual(a.MyHashMash.Count, b.MyHashMash.Count);

                foreach (var k in a.MyHashMash.Keys)
                {
                    Assert.IsTrue(b.MyHashMash.ContainsKey(k));
                    Assert.AreEqual(a.MyHashMash[k], b.MyHashMash[k]);
                }
            }

            Assert.AreEqual(a.GetFieldTestValue(), b.GetFieldTestValue());
            Assert.AreEqual(a.GetFieldTest2Value(), b.GetFieldTest2Value());

            return true;
        }
        internal static MockClassA CreateRandomDomain()
        {
            var d = new MockDomain()
            {
                Name = "Class " + random.Next(),
                Location = new MockStruct()
                {
                    X = (float)random.NextDouble(),
                    Y = (float)random.NextDouble(),
                    Z = (float)random.NextDouble(),
                    W = (float)random.NextDouble()
                },
                MyDate = GetRandomDay(),
                GetSomeCheckSum = new double[] { random.NextDouble(), random.NextDouble() },
                ReferenceCode = "R " + random.Next(),
                ReplicationID = Guid.NewGuid(),
                BigId = (long)(random.Next(5, int.MaxValue) * random.Next(1, int.MaxValue)),
                DecAnimal = (decimal)(random.NextDouble() + random.NextDouble()),
                LittleId = (short)(random.Next(5, short.MaxValue)),
                Unsigned16 = (ushort)random.Next(5, ushort.MaxValue),
                Unsigned32 = (uint)random.Next(5, int.MaxValue),
                Unsigned64 = (ulong)random.Next(5, int.MaxValue),
                ADomain = GetMockClassAObjects(1).First(),
                BDomain = CreateRandom() as MockClassB,
                CDomain = CreateRandom() as MockClassC,
                CDomains = TestResourceFactory.GetMockClassAObjects(3).Cast<MockClassC>().ToList(),
                BDomains = TestResourceFactory.GetMockClassAObjects(3).Cast<MockClassB>().ToArray(),
                MyHashMash = new Dictionary<int, string>() { { 1, "First" }, { 2, "Second" }, { 3, "Third" } }
            };

            d.CDomain.Other = d;
            d.CDomains.ToList().ForEach(c => c.Other = d);
            d.SetFieldTestValue(random.Next());
            d.SetFieldTest2Value(random.Next());

            return d;
        }