public void Given_TwoKeysWithSameKeyAndIVValues_When_GetHashCode_Then_HashCodesMatch() { // Arrange var key1 = new AesKey() { Iv = new byte[] { 1, 2 }, Key = new byte[] { 1, 2, 3 }, }; var key2 = new AesKey() { Iv = new byte[] { 1, 2 }, Key = new byte[] { 1, 2, 3 }, }; // Act // Assert Debug.WriteLine("key1 hash: {0}", key1.GetHashCode()); Debug.WriteLine("key2 hash: {0}", key2.GetHashCode()); key1.GetHashCode().Should().Be(key2.GetHashCode()); }
public static void TestObjectEquals() { object key1 = new AesKey(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }); object key2 = new AesKey(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }); object key3 = new AesKey(); Assert.That(!key1.Equals(null), "A key is never equal to a null reference."); Assert.That(key1.Equals(key2), "Two different, but equivalent keys should compare equal."); Assert.That(!key1.Equals(key3), "Two really different keys should not compare equal."); Assert.That(key1.GetHashCode(), Is.EqualTo(key2.GetHashCode()), "The hashcodes should be the same for two different but equivalent keys."); }