Пример #1
0
 /// <summary>
 ///     Initializes a new instance of the
 ///     <see cref="T:MoneyFox.Business.ViewModels.Statistic.StatisticCategorySummaryViewModel" /> class.
 /// </summary>
 /// <param name="categorySummaryDataDataProvider">Category summary data data provider.</param>
 /// <param name="messenger">Messenger.</param>
 /// <param name="settingsManager">Instance of a ISettingsManager</param>
 public StatisticCategorySummaryViewModel(CategorySummaryDataProvider categorySummaryDataDataProvider,
                                          IMvxMessenger messenger,
                                          ISettingsManager settingsManager) : base(messenger, settingsManager)
 {
     this.categorySummaryDataDataProvider = categorySummaryDataDataProvider;
     CategorySummary = new MvxObservableCollection <StatisticItem>();
 }
        public void GetValues_InitializedData_IgnoreTransfers()
        {
            //Setup

            var categoryRepoSetup = new Mock <ICategoryRepository>();

            categoryRepoSetup.Setup(x => x.GetList(null)).Returns(new List <CategoryViewModel>
            {
                new CategoryViewModel {
                    Id = 1, Name = "Ausgehen"
                }
            });

            var categoryRepo = categoryRepoSetup.Object;

            var paymentRepoSetup = new Mock <IPaymentRepository>();

            paymentRepoSetup.Setup(x => x.GetList(null)).Returns(new List <PaymentViewModel>
            {
                new PaymentViewModel
                {
                    Id         = 1,
                    Type       = PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 60,
                    Category   = categoryRepo.GetList().First(),
                    CategoryId = 1
                },
                new PaymentViewModel
                {
                    Id         = 2,
                    Type       = PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 90,
                    Category   = categoryRepo.GetList().First(),
                    CategoryId = 1
                },
                new PaymentViewModel
                {
                    Id         = 3,
                    Type       = PaymentType.Transfer,
                    Date       = DateTime.Today,
                    Amount     = 40,
                    Category   = categoryRepo.GetList().First(),
                    CategoryId = 1
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepoSetup.Object, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                                                                                                 DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(1);
            result.First().Value.ShouldBe(-30);
        }
        public void GetValues_InitializedData_IgnoreTransfers()
        {
            //Setup
            var paymentRepoSetup = new Mock <IPaymentRepository>();

            paymentRepoSetup.SetupAllProperties();

            var categoryRepoSetup = new Mock <IRepository <Category> >();

            categoryRepoSetup.SetupAllProperties();

            var categoryRepo = categoryRepoSetup.Object;

            categoryRepo.Data = new ObservableCollection <Category>(new List <Category> {
                new Category {
                    Id = 1, Name = "Ausgehen"
                }
            });

            var paymentRepository = paymentRepoSetup.Object;

            paymentRepository.Data = new ObservableCollection <Payment>(new List <Payment> {
                new Payment {
                    Id         = 1,
                    Type       = (int)PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 60,
                    Category   = categoryRepo.Data.First(),
                    CategoryId = 1
                },
                new Payment {
                    Id         = 2,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 90,
                    Category   = categoryRepo.Data.First(),
                    CategoryId = 1
                },
                new Payment {
                    Id         = 3,
                    Type       = (int)PaymentType.Transfer,
                    Date       = DateTime.Today,
                    Amount     = 40,
                    Category   = categoryRepo.Data.First(),
                    CategoryId = 1
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepository, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                                                                                           DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(1);
            result.First().Value.ShouldBe(-30);
        }
        public void GetValues_InitializedData_IgnoreTransfers()
        {
            //Setup
            var paymentRepoSetup = new Mock<IPaymentRepository>();
            paymentRepoSetup.SetupAllProperties();

            var categoryRepoSetup = new Mock<IRepository<Category>>();
            categoryRepoSetup.SetupAllProperties();

            var categoryRepo = categoryRepoSetup.Object;
            categoryRepo.Data = new ObservableCollection<Category>(new List<Category>
            {
                new Category {Id = 1, Name = "Ausgehen"}
            });

            var paymentRepository = paymentRepoSetup.Object;
            paymentRepository.Data = new ObservableCollection<Payment>(new List<Payment>
            {
                new Payment
                {
                    Id = 1,
                    Type = (int) PaymentType.Income,
                    Date = DateTime.Today,
                    Amount = 60,
                    Category = categoryRepo.Data.First(),
                    CategoryId = 1
                },
                new Payment
                {
                    Id = 2,
                    Type = (int) PaymentType.Expense,
                    Date = DateTime.Today,
                    Amount = 90,
                    Category = categoryRepo.Data.First(),
                    CategoryId = 1
                },
                new Payment
                {
                    Id = 3,
                    Type = (int) PaymentType.Transfer,
                    Date = DateTime.Today,
                    Amount = 40,
                    Category = categoryRepo.Data.First(),
                    CategoryId = 1
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepository, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                    DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(1);
            result.First().Value.ShouldBe(-30);
        }
        public void GetValues_CorrectSums()
        {
            // Arrange
            var categoryServiceMock = new Mock <ICategoryService>();

            categoryServiceMock.Setup(x => x.GetAllCategoriesWithPayments())
            .Returns(Task.FromResult <IEnumerable <Category> >(new List <Category>
            {
                new Category
                {
                    Data =
                    {
                        Id       =                    1,
                        Name     = "Ausgehen",
                        Payments = new List <PaymentEntity>
                        {
                            new PaymentEntity
                            {
                                Id         =                    1,
                                Type       = PaymentType.Income,
                                Date       = DateTime.Today,
                                Amount     =                   60,
                                CategoryId = 1
                            },
                            new PaymentEntity
                            {
                                Id         =                    2,
                                Type       = PaymentType.Expense,
                                Date       = DateTime.Today,
                                Amount     =                   90,
                                CategoryId = 1
                            },
                            new PaymentEntity
                            {
                                Id         =                    3,
                                Type       = PaymentType.Transfer,
                                Date       = DateTime.Today,
                                Amount     =                   40,
                                CategoryId = 1
                            }
                        }
                    }
                }
            }));

            // Act
            var result =
                new CategorySummaryDataProvider(categoryServiceMock.Object).GetValues(DateTime.Today.AddDays(-3),
                                                                                      DateTime.Today.AddDays(3))
                .Result.ToList();

            // Assert
            result.Count.ShouldBe(1);
            result.First().Value.ShouldBe(-30);
        }
 /// <summary>
 ///     Initializes a new instance of the
 ///     <see cref="T:MoneyFox.Business.ViewModels.Statistic.StatisticCategorySummaryViewModel" /> class.
 /// </summary>
 /// <param name="categorySummaryDataDataProvider">Category summary data data provider.</param>
 /// <param name="messenger">Messenger.</param>
 /// <param name="settingsManager">Instance of a ISettingsManager</param>
 public StatisticCategorySummaryViewModel(CategorySummaryDataProvider categorySummaryDataDataProvider,
                                          IMvxMessenger messenger,
                                          ISettingsManager settingsManager,
                                          IDialogService dialogService,
                                          IMvxLogProvider logProvider,
                                          IMvxNavigationService navigationService) : base(messenger, settingsManager, logProvider, navigationService)
 {
     this.categorySummaryDataDataProvider = categorySummaryDataDataProvider;
     this.dialogService = dialogService;
     CategorySummary    = new MvxObservableCollection <StatisticItem>();
 }
 public StatisticCategorySummaryViewModel(IPaymentRepository paymentRepository,
                                          IRepository <Category> categoryRepository)
 {
     categorySummaryDataDataProvider = new CategorySummaryDataProvider(paymentRepository, categoryRepository);
 }
Пример #8
0
        public void GetValues_InitializedData_CalculateIncome()
        {
            //Setup
            var paymentRepoSetup = new Mock <IPaymentRepository>();

            paymentRepoSetup.SetupAllProperties();

            var categoryRepoSetup = new Mock <IRepository <Category> >();

            categoryRepoSetup.SetupAllProperties();

            var categoryRepo = categoryRepoSetup.Object;

            categoryRepo.Data = new ObservableCollection <Category>(new List <Category>
            {
                new Category {
                    Id = 1, Name = "Einkaufen"
                },
                new Category {
                    Id = 2, Name = "Ausgehen"
                },
                new Category {
                    Id = 3, Name = "Foo"
                }
            });

            var paymentRepository = paymentRepoSetup.Object;

            paymentRepository.Data = new ObservableCollection <Payment>(new List <Payment>
            {
                new Payment
                {
                    Id         = 1,
                    Type       = (int)PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 60,
                    Category   = categoryRepo.Data[0],
                    CategoryId = 1
                },
                new Payment
                {
                    Id         = 2,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 90,
                    Category   = categoryRepo.Data[0],
                    CategoryId = 1
                },
                new Payment
                {
                    Id         = 3,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 40,
                    Category   = categoryRepo.Data[1],
                    CategoryId = 2
                },
                new Payment
                {
                    Id         = 3,
                    Type       = (int)PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 66,
                    Category   = categoryRepo.Data[2],
                    CategoryId = 3
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepository, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                                                                                           DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(3);
            result[0].Value.ShouldBe(-40);
            result[1].Value.ShouldBe(-30);
            result[2].Value.ShouldBe(66);
        }
Пример #9
0
 public StatisticCategorySummaryViewModel(CategorySummaryDataProvider categorySummaryDataDataProvider)
 {
     this.categorySummaryDataDataProvider = categorySummaryDataDataProvider;
 }
 public StatisticCategorySummaryViewModel(IPaymentRepository paymentRepository,
     IRepository<Category> categoryRepository)
 {
     categorySummaryDataDataProvider = new CategorySummaryDataProvider(paymentRepository, categoryRepository);
 }
        public void GetValues_InitializedData_CalculateIncome()
        {
            //Setup
            var categoryRepoSetup = new Mock <ICategoryRepository>();

            categoryRepoSetup.Setup(x => x.GetList(null)).Returns(new List <CategoryViewModel>
            {
                new CategoryViewModel {
                    Id = 1, Name = "Einkaufen"
                },
                new CategoryViewModel {
                    Id = 2, Name = "Ausgehen"
                },
                new CategoryViewModel {
                    Id = 3, Name = "Foo"
                }
            });

            var categoryRepo = categoryRepoSetup.Object;

            var paymentRepoSetup = new Mock <IPaymentRepository>();

            paymentRepoSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <PaymentViewModel, bool> > >())).Returns(new List <PaymentViewModel>
            {
                new PaymentViewModel
                {
                    Id         = 1,
                    Type       = PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 60,
                    Category   = categoryRepo.GetList().ToList()[0],
                    CategoryId = 1
                },
                new PaymentViewModel
                {
                    Id         = 2,
                    Type       = PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 90,
                    Category   = categoryRepo.GetList().ToList()[0],
                    CategoryId = 1
                },
                new PaymentViewModel
                {
                    Id         = 3,
                    Type       = PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 40,
                    Category   = categoryRepo.GetList().ToList()[1],
                    CategoryId = 2
                },
                new PaymentViewModel
                {
                    Id         = 3,
                    Type       = PaymentType.Income,
                    Date       = DateTime.Today,
                    Amount     = 66,
                    Category   = categoryRepo.GetList().ToList()[2],
                    CategoryId = 3
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepoSetup.Object, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                                                                                                 DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(3);
            result[0].Value.ShouldBe(-40);
            result[1].Value.ShouldBe(-30);
            result[2].Value.ShouldBe(66);
        }
Пример #12
0
        public void GetValues_InitializedData_HandleDateCorrectly()
        {
            //Setup

            var categoryRepoSetup = new Mock <ICategoryRepository>();

            categoryRepoSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <Category, bool> > >())).Returns(new List <Category>
            {
                new Category {
                    Id = 1, Name = "Einkaufen"
                },
                new Category {
                    Id = 2, Name = "Ausgehen"
                },
                new Category {
                    Id = 3, Name = "Bier"
                }
            });
            var categoryRepo = categoryRepoSetup.Object;

            var paymentRepoSetup = new Mock <IPaymentRepository>();

            paymentRepoSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <Payment, bool> > >())).Returns(new List <Payment>
            {
                new Payment
                {
                    Id         = 1,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today.AddDays(-5),
                    Amount     = 60,
                    Category   = categoryRepo.GetList().ToList()[0],
                    CategoryId = 1
                },
                new Payment
                {
                    Id         = 2,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today,
                    Amount     = 90,
                    Category   = categoryRepo.GetList().ToList()[1],
                    CategoryId = 2
                },
                new Payment
                {
                    Id         = 3,
                    Type       = (int)PaymentType.Expense,
                    Date       = DateTime.Today.AddDays(5),
                    Amount     = 40,
                    Category   = categoryRepo.GetList().ToList()[2],
                    CategoryId = 3
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepoSetup.Object, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                                                                                                 DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(1);
            result.First().Value.ShouldBe(-90);
        }
        public void GetValues_InitializedData_CalculateIncome()
        {
            //Setup
            var paymentRepoSetup = new Mock<IPaymentRepository>();
            paymentRepoSetup.SetupAllProperties();

            var categoryRepoSetup = new Mock<IRepository<Category>>();
            categoryRepoSetup.SetupAllProperties();

            var categoryRepo = categoryRepoSetup.Object;
            categoryRepo.Data = new ObservableCollection<Category>(new List<Category>
            {
                new Category {Id = 1, Name = "Einkaufen"},
                new Category {Id = 2, Name = "Ausgehen"},
                new Category {Id = 3, Name = "Foo"}
            });

            var paymentRepository = paymentRepoSetup.Object;
            paymentRepository.Data = new ObservableCollection<Payment>(new List<Payment>
            {
                new Payment
                {
                    Id = 1,
                    Type = (int) PaymentType.Income,
                    Date = DateTime.Today,
                    Amount = 60,
                    Category = categoryRepo.Data[0],
                    CategoryId = 1
                },
                new Payment
                {
                    Id = 2,
                    Type = (int) PaymentType.Expense,
                    Date = DateTime.Today,
                    Amount = 90,
                    Category = categoryRepo.Data[0],
                    CategoryId = 1
                },
                new Payment
                {
                    Id = 3,
                    Type = (int) PaymentType.Expense,
                    Date = DateTime.Today,
                    Amount = 40,
                    Category = categoryRepo.Data[1],
                    CategoryId = 2
                },
                new Payment
                {
                    Id = 3,
                    Type = (int) PaymentType.Income,
                    Date = DateTime.Today,
                    Amount = 66,
                    Category = categoryRepo.Data[2],
                    CategoryId = 3
                }
            });

            //Excution
            var result =
                new CategorySummaryDataProvider(paymentRepository, categoryRepo).GetValues(DateTime.Today.AddDays(-3),
                    DateTime.Today.AddDays(3)).ToList();

            //Assertion
            result.Count.ShouldBe(3);
            result[0].Value.ShouldBe(-40);
            result[1].Value.ShouldBe(-30);
            result[2].Value.ShouldBe(66);
        }
Пример #14
0
 public StatisticCategorySummaryViewModel(CategorySummaryDataProvider categorySummaryDataDataProvider,
                                          IMvxMessenger messenger) : base(messenger)
 {
     this.categorySummaryDataDataProvider = categorySummaryDataDataProvider;
 }