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"); }
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)); } }
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"); } } }