public void Log_EqualityComparer_GetHashCode_NullableValues()
        {
            var random = new Random();

            var response = new MessageResponse(Enumerable.Range(0, 50).Select(i =>
            {
                var dateTimeRaw    = 43042.2573037732 + random.NextDouble() * 3000;
                var dateTimeRawStr = dateTimeRaw.ToString(CultureInfo.InvariantCulture);

                return(new MessageItem(null, null, dateTimeRawStr, null, null, "604", null, null, null, null, "1", null, null, "2304", null, null, null, null));
            }).ToArray());

            var logs = BaseTest.Initialize_Client(response).GetLogs(count: null);

            Assert.AreEqual(50, logs.Count);

            var set = new HashSet <Log>(new LogEqualityComparer());

            foreach (var log in logs)
            {
                set.Add(log);
            }

            Assert.AreEqual(50, set.Count);

            var comparer = new LogEqualityComparer();

            foreach (var log in logs)
            {
                Assert.AreEqual(comparer.GetHashCode(log), comparer.GetHashCode(log));
            }
        }
        public void Log_EqualityComparer_Equals_DifferentObjectsSameValues()
        {
            var client = BaseTest.Initialize_Client(new MessageResponse(new MessageItem()));

            var log1 = client.GetLogs().Single();
            var log2 = client.GetLogs().Single();

            var comparer = new LogEqualityComparer();

            Assert.IsTrue(!Equals(log1, log2), "Both logs referenced equaled each other");
            Assert.IsTrue(comparer.Equals(log1, log2), "Logs were not equal");
        }
        public void Log_EqualityComparer_Equals_DifferentObjectsNullableValues()
        {
            var item = new MessageItem(null, null, "43042.2573037732", null, null, "604", null, null, null, null, "1", null, null, "2304", null, null, null, null);

            var client = BaseTest.Initialize_Client(new MessageResponse(item));

            var log1 = client.GetLogs().Single();
            var log2 = client.GetLogs().Single();

            var comparer = new LogEqualityComparer();

            Assert.IsTrue(!Equals(log1, log2), "Both logs referenced equaled each other");
            Assert.IsTrue(comparer.Equals(log1, log2), "Logs were not equal");
        }
Example #4
0
        public static void AreEqualLists <T>(List <T> first, List <T> second, IEqualityComparer <T> comparer, string message)
        {
            for (var i = 0; i < first.Count; i++)
            {
                if (i < second.Count)
                {
                    if (comparer != null)
                    {
                        string msg = $"{message}. {first[i]} was not equal to {second[i]}";

                        if (comparer is LogEqualityComparer)
                        {
                            var firstStr  = LogEqualityComparer.Stringify((Log)(object)first[i]);
                            var secondStr = LogEqualityComparer.Stringify((Log)(object)second[i]);

                            msg = $"{message}. {first[i]} ({firstStr}) was not equal to {second[i]} ({secondStr})";
                        }
                        else
                        {
                            Assert.IsTrue(comparer.Equals(first[i], second[i]), msg);
                        }
                    }
                    else
                    {
                        Assert.AreEqual(first[i], second[i], message);
                    }
                }
                else
                {
                    var missing = first.Skip(i).ToList();

                    Assert.Fail($"{message}. Elements " + string.Join(", ", missing) + " were missing from second");
                }
            }

            if (second.Count > first.Count)
            {
                var missing = second.Skip(first.Count).ToList();

                Assert.Fail($"{message}. Elements " + string.Join(", ", missing) + " were missing from first");
            }
        }
        public void Log_EqualityComparer_GetHashCode_UniqueValues()
        {
            var random = new Random();

            var response = new MessageResponse(Enumerable.Range(0, 50).Select(i =>
            {
                var r = random.NextDouble();

                return(new MessageItem(
                           $"WMI Remote Ping_{r}",
                           datetimeRaw: (43042.2573037732 + r).ToString(),
                           parent: $"Probe Device_{r}",
                           sensor: $"WMI Remote Ping_{r}",
                           device: $"Probe Device_{r}",
                           group: $"Local Probe_{r}"
                           ));
            }).ToArray());

            var logs = BaseTest.Initialize_Client(response).GetLogs(count: null);

            Assert.AreEqual(50, logs.Count);

            var set = new HashSet <Log>(new LogEqualityComparer());

            foreach (var log in logs)
            {
                set.Add(log);
            }

            Assert.AreEqual(50, set.Count);

            var comparer = new LogEqualityComparer();

            foreach (var log in logs)
            {
                Assert.AreEqual(comparer.GetHashCode(log), comparer.GetHashCode(log));
            }
        }
Example #6
0
        private static void AreEqualListsInternal <T>(List <T> first, List <T> second, IEqualityComparer <T> comparer, Action <T, T> assert, string message, bool ignoreSize = false)
        {
            if (first == null && second == null)
            {
                return;
            }

            if (first == null && second != null)
            {
                Assert.Fail("First was null but second wasn't");
            }

            if (first != null && second == null)
            {
                Assert.Fail("First was not null but second wasn't");
            }

            for (var i = 0; i < first.Count; i++)
            {
                if (i < second.Count)
                {
                    if (comparer != null)
                    {
                        string msg = $"{message}. {first[i]} was not equal to {second[i]}";

                        if (comparer is LogEqualityComparer)
                        {
                            var firstStr  = LogEqualityComparer.Stringify((Log)(object)first[i]);
                            var secondStr = LogEqualityComparer.Stringify((Log)(object)second[i]);

                            msg = $"{message}. {first[i]} ({firstStr}) was not equal to {second[i]} ({secondStr})";
                        }
                        else
                        {
                            Assert.IsTrue(comparer.Equals(first[i], second[i]), msg);
                        }
                    }
                    else
                    {
                        if (assert != null)
                        {
                            assert(first[i], second[i]);
                        }
                        else
                        {
                            Assert.AreEqual(first[i], second[i], message);
                        }
                    }
                }
                else
                {
                    var missing = first.Skip(i).ToList();

                    Assert.Fail($"{message}. Elements " + string.Join(", ", missing) + " were missing from second");
                }
            }

            if (!ignoreSize)
            {
                if (second.Count > first.Count)
                {
                    var missing = second.Skip(first.Count).ToList();

                    Assert.Fail($"{message}. Elements " + string.Join(", ", missing) + " were missing from first");
                }
            }
        }