public void Test_RepeatingTransaction_Method_CompareTo_Equal_EmptyDateEnd()
        {
            RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, paymentFrom, paymentTo);
            int compareValue = repeatingTransaction.CompareTo(repeatingTransaction);

            Assert.AreEqual(0, compareValue);
        }
        public void Test_RepeatingTransaction_Constructor_Base()
        {
            RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, paymentFrom, paymentTo);

            Assert.AreEqual(frequency, repeatingTransaction.Frequency);
            Assert.AreEqual(dateStart, repeatingTransaction.DateStart);
            Assert.AreEqual(paymentFrom, repeatingTransaction.PaymentFrom);
            Assert.AreEqual(paymentTo, repeatingTransaction.PaymentTo);
        }
        public void Test_RepeatingTransaction_Method_CompareTo_DateEndDiffers()
        {
            RepeatingTransaction repeatingTransactionSmaller = new RepeatingTransaction(frequency, dateStart, dateTomorrow, paymentFrom, paymentTo);
            RepeatingTransaction repeatingTransactionLarger  = new RepeatingTransaction(frequency, dateStart, dateNextWeek, paymentFrom, paymentTo);
            int comparevalue = repeatingTransactionSmaller.CompareTo(repeatingTransactionLarger);

            Assert.AreEqual(-1, comparevalue);
            comparevalue = repeatingTransactionLarger.CompareTo(repeatingTransactionSmaller);
            Assert.AreEqual(1, comparevalue);
        }
        public void Test_RepeatingTransaction_Method_CompareTo_TransactionListDiffers()
        {
            RepeatingTransaction repeatingTransactionSmaller = new RepeatingTransaction(2, dateStart, dateEnd, paymentFrom, paymentTo);
            RepeatingTransaction repeatingTransactionLarger  = new RepeatingTransaction(1, dateStart, dateEnd, paymentFrom, paymentTo);
            //repeatingTransactionSmaller.TransactionList
            int comparevalue = repeatingTransactionSmaller.CompareTo(repeatingTransactionLarger);

            Assert.AreEqual(-1, comparevalue);
            comparevalue = repeatingTransactionLarger.CompareTo(repeatingTransactionSmaller);
            Assert.AreEqual(1, comparevalue);
        }
        public void Test_RepeatingTransaction_Constructor_StartDateAfterEndDate()
        {
            dateStart = dateNextWeek;
            dateEnd   = dateLastWeek;
            RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, dateEnd, paymentFrom, paymentTo);

            Assert.AreEqual(frequency, repeatingTransaction.Frequency);
            Assert.AreEqual(dateStart, repeatingTransaction.DateStart);
            Assert.AreEqual(dateEnd, repeatingTransaction.DateEnd);
            Assert.AreEqual(paymentFrom, repeatingTransaction.PaymentFrom);
            Assert.AreEqual(paymentTo, repeatingTransaction.PaymentTo);
        }
        public void Test_RepeatingTransaction_Method_CompleteTransaction_IndexValues()
        {
            RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, paymentFrom, paymentTo);

            Assert.AreEqual(-1, repeatingTransaction.LastCompletedTransactionIndex);
            repeatingTransaction.CompleteTransaction("First Transaction", 15.99m, dateToday.AddMinutes(-20));
            Assert.AreEqual(0, repeatingTransaction.LastCompletedTransactionIndex);
            repeatingTransaction.CompleteTransaction("Second Transaction", 1m, dateToday);
            Assert.AreEqual(1, repeatingTransaction.LastCompletedTransactionIndex);

            // Tested on null, n, and n+1 items. Should work on all further values.
        }
        public void NextOccurenceTest()
        {
            RepeatingTransaction r1 = new RepeatingTransaction()
            {
                NextOccurence = new DateTime(2010, 1, 1),
                Repeat        = RepeatingTransaction.RepeatType.None
            };

            DataRepository repo = new DataRepository();

            repo.GetNextOccurance(r1).Should().BeNull();
        }
        public void Test_RepeatingTransaction_Method_CompleteTransaction_NodeValues()
        {
            RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, paymentFrom, paymentTo);

            Assert.IsNull(repeatingTransaction.TransactionList.FirstNode.Data.Description);
            Assert.AreEqual(0m, repeatingTransaction.TransactionList.FirstNode.Data.TransactionAmount);
            Assert.AreEqual(DateTime.MinValue, repeatingTransaction.TransactionList.FirstNode.Data.DateProcessed);
            repeatingTransaction.CompleteTransaction("First Transaction", 15.99m, dateToday.AddMinutes(-20));
            Assert.AreEqual("First Transaction", repeatingTransaction.TransactionList.FirstNode.Data.Description);
            Assert.AreEqual(15.99m, repeatingTransaction.TransactionList.FirstNode.Data.TransactionAmount);
            Assert.AreEqual(dateToday.AddMinutes(-20), repeatingTransaction.TransactionList.FirstNode.Data.DateProcessed);
            repeatingTransaction.CompleteTransaction("Second Transaction", 1m, dateToday);
            Assert.AreEqual("Second Transaction", repeatingTransaction.TransactionList.FirstNode.Next.Data.Description);
            Assert.AreEqual(1m, repeatingTransaction.TransactionList.FirstNode.Next.Data.TransactionAmount);
            Assert.AreEqual(dateToday, repeatingTransaction.TransactionList.FirstNode.Next.Data.DateProcessed);

            // Tested on null, n, and n+1 items. Should work on all further values.
        }
 public void Test_RepeatingTransaction_Property_DateEndDefault()
 {
     RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequency, dateStart, dateEndDefault, paymentFrom, paymentTo);
 }
 public void Test_RepeatingTransaction_Property_FrequencyNegative()
 {
     RepeatingTransaction repeatingTransaction = new RepeatingTransaction(frequencyNegative, dateStart, dateEnd, paymentFrom, paymentTo);
 }