public void Currencies_WhenNotEqual_HaveDifferentHashCodes()
        {
            // Arrange
            var currency1 = new FakeCurrency();
            var currency2 = new FakeCurrency("foo");

            // Act
            var hashCodesAreEqual = (currency1.GetHashCode() == currency2.GetHashCode());

            // Assert
            hashCodesAreEqual.Should().BeFalse();
        }
        public void Currencies_AreNotEqual()
        {
            // Arrange
            var currency1 = new FakeCurrency();
            var currency2 = new FakeCurrency("foo");

            // Act
            var areEqual = currency1 == currency2;

            // Assert
            areEqual.Should().BeFalse();
        }
        public void Currencies_HaveSameHashCode()
        {
            // Arrange
            var currency1 = new FakeCurrency();
            var currency2 = new FakeCurrency();

            // Act
            var hashCodesAreEqual = (currency1.GetHashCode() == currency2.GetHashCode());

            // Assert
            hashCodesAreEqual.Should().BeTrue();
        }
        public void Currencies_WhenDifferingByCase_HaveSameHashCode()
        {
            // Arrange
            var currency1 = new FakeCurrency("USD");
            var currency2 = new FakeCurrency("usd");

            // Act
            var hashCodesAreEqual = (currency1.GetHashCode() == currency2.GetHashCode());

            // Assert
            hashCodesAreEqual.Should().BeTrue();
        }
        public void Currencies_WhenDifferingByCase_AreEqual()
        {
            // Arrange
            var currency1 = new FakeCurrency("USD");
            var currency2 = new FakeCurrency("usd");

            // Act
            var areEqual = currency1 == currency2;

            // Assert
            areEqual.Should().BeTrue();
        }