public void LastModifiedDateShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.AreEqual(TestData.LastModified, result.LastModified);
        }
        public void NameShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.AreEqual(TestData.Name, result.Name);
        }
        public void IncomesSumShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.AreEqual(TestData.Incomes.Sum(i => i.Amount), result.Incomes.Sum(i => i.Amount));
        }
        public void IncomesCountShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.AreEqual(TestData.Incomes.Count(), result.Incomes.Count);
        }
        public void IncomesBucketsShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.IsTrue(result.Incomes.All(dto => !string.IsNullOrWhiteSpace(dto.BudgetBucketCode)));
        }
        public void EffectiveFromShouldBeMapped()
        {
            BudgetModelDto result = ArrangeAndAct();

            Assert.AreEqual(TestData.EffectiveFrom, result.EffectiveFrom);
        }
        public void OutputBudgetModelTestData1()
        {
            var testData1 = new BudgetModelDto
            {
                EffectiveFrom       = new DateTime(2014, 4, 28),
                LastModified        = new DateTime(2014, 5, 2),
                LastModifiedComment = "The quick brown fox jumped over the lazy dog.",
                Name    = "Foo data budget",
                Incomes = new List <IncomeDto>
                {
                    new IncomeDto
                    {
                        Amount           = 2300.23M,
                        BudgetBucketCode = TestDataConstants.IncomeBucketCode
                    }
                },
                Expenses = new List <ExpenseDto>
                {
                    new ExpenseDto
                    {
                        Amount           = 350.11M,
                        BudgetBucketCode = TestDataConstants.PhoneBucketCode
                    },
                    new ExpenseDto
                    {
                        Amount           = 221.22M,
                        BudgetBucketCode = TestDataConstants.PowerBucketCode
                    }
                }
            };

            var testData2 = new BudgetModelDto
            {
                EffectiveFrom       = new DateTime(2012, 2, 29),
                LastModified        = new DateTime(2013, 6, 6),
                LastModifiedComment = "Spatchcock.",
                Name    = "Old data budget",
                Incomes = new List <IncomeDto>
                {
                    new IncomeDto
                    {
                        Amount           = 2100.23M,
                        BudgetBucketCode = TestDataConstants.IncomeBucketCode
                    }
                },
                Expenses = new List <ExpenseDto>
                {
                    new ExpenseDto
                    {
                        Amount           = 310.11M,
                        BudgetBucketCode = TestDataConstants.PhoneBucketCode
                    },
                    new ExpenseDto
                    {
                        Amount           = 111.22M,
                        BudgetBucketCode = TestDataConstants.PowerBucketCode
                    }
                }
            };

            var collection = new BudgetCollectionDto
            {
                Budgets = new List <BudgetModelDto> {
                    testData1, testData2
                },
                StorageKey = "Foo.xml"
            };

            string serialised = XamlServices.Save(collection);

            Console.WriteLine(serialised);
        }