public void Card_HashCodes_ShouldBe_Equal_Fails() { var card1 = new Card_GetHashCodeThrowsException(CardValue.Ace, CardSuit.Diamond); var card2 = new Card_GetHashCodeThrowsException(CardValue.Ace, CardSuit.Diamond); Assert.Equal(card1.GetHashCode(), card2.GetHashCode()); //ArgumentException }
public void CardEquality() { var card1 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); var card2 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); Assert.Equal(card1, card2); }
public void HashTable_Key_MustBe_Unique_Fails() { var card1 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); var card2 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); //we can't add to a hashtable, because GetHashCode() throws NotImplementedException var hash = new Hashtable(); hash.Add(card1, ""); //fails: throws NotImplementedException Assert.Throws <ArgumentException>(() => hash.Add(card2, "")); //fails: throws NotImplementedException }
public void HashTable_ContainsKey_ShouldBe_True_For_Like_Values_Fails() { var card1 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); var card2 = new Card_GetHashCodeThrowsException(CardValue.Two, CardSuit.Club); //we can't add to a hashtable, because GetHashCode() throws NotImplementedException var hash = new Hashtable(); hash.Add(card1, ""); //fails: throws NotImplementedException Assert.True(hash.ContainsKey(card1)); //fails: false Assert.True(hash.ContainsKey(card2)); //fails: false }
public void Card_Dictionary_ShouldNotContain_DuplicateKeys() { var card1 = new Card_GetHashCodeThrowsException(CardValue.Ace, CardSuit.Diamond); var card2 = new Card_GetHashCodeThrowsException(CardValue.Ace, CardSuit.Diamond); var dictionary = new Dictionary <Card_GetHashCodeThrowsException, string>(); dictionary.Add(card1, ""); Assert.True(dictionary.ContainsKey(card1)); Assert.Throws <ArgumentException>(() => dictionary.Add(card2, "") ); Assert.Single(dictionary); }