public void InitialisesWith_DefaultCurrency()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value = new LatitudePayMoney(10M, null);

            Assert.AreEqual(value.Currency, LatitudePayCurrencies.AustralianDollars);

            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.NewZealandDollars;

            var value2 = new LatitudePayMoney(10M, null);

            Assert.AreEqual(value2.Currency, LatitudePayCurrencies.NewZealandDollars);

            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value3 = new LatitudePayMoney();

            Assert.AreEqual(value3.Currency, LatitudePayCurrencies.AustralianDollars);


            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.NewZealandDollars;

            var value4 = new LatitudePayMoney();

            Assert.AreEqual(value4.Currency, LatitudePayCurrencies.NewZealandDollars);
        }
        public void DoesNotEqualOtherType()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);

            Assert.IsFalse(value.Equals(new object()));
        }
        public void DifferentValues_GenerateDifferentHashCode()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value  = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);
            var value2 = new LatitudePayMoney(10M, LatitudePayCurrencies.AustralianDollars);

            Assert.AreNotEqual(value.GetHashCode(), value2.GetHashCode());
        }
        public void ToString_FormatsAmountAsCurrency()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);
            var x     = value.ToString();

            Assert.AreEqual(15.ToString("c", System.Globalization.CultureInfo.CurrentCulture), x);
        }
        public void InequalWhenAmountDifferent()
        {
            var value  = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);
            var value2 = new LatitudePayMoney(10M, LatitudePayCurrencies.AustralianDollars);

            Assert.IsFalse(value.Equals(value2));
            Assert.AreNotEqual(value, value2);
            Assert.IsTrue(value != value2);
        }
        public void EqualsEquivalent()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value  = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);
            var value2 = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);

            Assert.IsTrue(value.Equals(value2));
            Assert.AreEqual(value, value2);
            Assert.IsTrue(value == value2);
        }
        public void EqualsSelf()
        {
            LatitudePayClientConfiguration.DefaultCurrency = LatitudePayCurrencies.AustralianDollars;

            var value = new LatitudePayMoney(15M, LatitudePayCurrencies.AustralianDollars);

            Assert.IsTrue(value.Equals(value));
            Assert.AreEqual(value, value);
#pragma warning disable CS1718 // Comparison made to same variable
            Assert.IsTrue(value == value);
#pragma warning restore CS1718 // Comparison made to same variable
        }