public void GetTopCategories_WhenCategoriesExist() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); for (int i = 0; i < 10; i++) { var c = new Category(); c.Name = i.ToString(); c.Plan = i; c.Upsert(); // adding expenses for (int j = 0; j < i; j++) { var e = new Expense(); e.CategoryId = c.Id; e.Value = 10; e.Upsert(); } } var categories = repositoryCore.GetTopCategories(); Assert.IsNotNull(categories); Assert.AreEqual(5, categories.Count); Assert.IsTrue(categories.Any(c => c.Name == "9")); Assert.IsTrue(categories.Any(c => c.Name == "8")); Assert.IsTrue(categories.Any(c => c.Name == "7")); Assert.IsTrue(categories.Any(c => c.Name == "6")); Assert.IsTrue(categories.Any(c => c.Name == "5")); }
public void Upsert() { try { RepositoryCore.Logger.Log(nameof(Setting.Upsert), ToString()); using (var db = new SQLiteConnection(DBConnectionString.PLATFORM, DBConnectionString.DBPATH)) { if (Id == -1) { Id = 1; db.Insert(this); } else { db.Update(this); } } RepositoryCore.SetCurrentMonth(CurrentYear, CurrentMonth); } catch (Exception ex) { RepositoryCore.Logger.Log(nameof(Setting.Upsert), ex.Message, LogType.Exception); throw ex; } }
public void GetExpenses_WhenNoExpensesExist() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); var expeneses = repositoryCore.GetExpenses(); Assert.IsNotNull(expeneses); Assert.AreEqual(0, expeneses.Count); }
public void GetTopCategories_WhenNoCategoryExist() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); var categories = repositoryCore.GetTopCategories(); Assert.IsNotNull(categories); Assert.AreEqual(0, categories.Count); }
public void GetAppSettings_WhenSettingHasNotSet() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); var currentSetting = repositoryCore.GetAppSettings(); Assert.IsNotNull(currentSetting); Assert.AreNotEqual(0, currentSetting.CurrentMonth); Assert.AreNotEqual(0, currentSetting.CurrentYear); }
public void DbSetup() { string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "expensemanager.db3"); if (File.Exists(dbPath)) { File.Delete(dbPath); } _repository = new RepositoryCore(new LogService()); _db = _repository.CreateDataBase(dbPath, new SQLitePlatformIOS(), true); }
public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); NavigationItem.Title = StaticValues.ExpenseListNavigationItemTitle; ParentViewController.Title = StaticValues.ExpenseListNavigationTitle; var repository = new RepositoryCore(CoreUtilities.GetLogService()); var expenses = repository.GetExpenses(); var listSource = new ExpenseListSource(expenses, this); TableView.Source = listSource; TableView.ReloadData(); }
public void CreateDataBase_IfDbDoesNotExist_CheckDb() { if (File.Exists(_dbPath)) { File.Delete(_dbPath); } var core = new RepositoryCore(new LogService()); core.CreateDataBase(_dbPath, new SQLitePlatformIOS(), true); Assert.IsTrue(File.Exists(_dbPath)); }
public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); ParentViewController.Title = StaticValues.SettingsNavigationTitle; var repository = new RepositoryCore(CoreUtilities.GetLogService()); _appSettings = repository.GetAppSettings(); handleMonthSelector(); handleYearSelector(); Settings_DeleteAllDataBtn.TouchUpInside += Settings_DeleteAllDataBtn_TouchUpInside; }
public void DbSetup() { if (File.Exists(_dbPath)) { File.Delete(_dbPath); } var db = new SQLiteConnection(new SQLitePlatformIOS(), _dbPath); db.CreateTable <Category>(); db.CreateTable <Expense>(); db.CreateTable <Setting>(); RepositoryCore.SetCurrentMonth(DateTime.Now.Year, DateTime.Now.Month); }
public void GetAppSettings_WhenSettingHasSetAlready() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); var setting = new Setting(); setting.CurrentYear = 2013; setting.CurrentMonth = 7; setting.Upsert(); var currentSetting = repositoryCore.GetAppSettings(); Assert.AreEqual(setting.CurrentMonth, currentSetting.CurrentMonth); Assert.AreEqual(setting.CurrentYear, currentSetting.CurrentYear); }
public void CreateDataBase_IfDbDoesNotExist_CheckCategoryTable() { if (File.Exists(_dbPath)) { File.Delete(_dbPath); } var core = new RepositoryCore(new LogService()); core.CreateDataBase(_dbPath, new SQLitePlatformIOS(), true); var db = new SQLiteConnection(new SQLitePlatformIOS(), _dbPath); var categories = db.Table <Category>(); Assert.IsTrue(categories.Count() > 0, "Category table hasn't been created."); }
public static void SetUpDatabase(bool deleteIfExist, bool withSeeding) { string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "expensemanager.db3"); if (File.Exists(dbPath) && deleteIfExist) { File.Delete(dbPath); } var repositoryCore = new RepositoryCore(GetLogService()); if (File.Exists(dbPath)) { repositoryCore.SetUpDataBaseConnection(dbPath, new SQLitePlatformIOS()); } else { repositoryCore.CreateDataBase(dbPath, new SQLitePlatformIOS(), withSeeding); } }
public void GetCategories_WhenCategoriesExist() { DbSetup(); var repositoryCore = new RepositoryCore(new LogService()); var category = new Category(); category.Name = "test"; category.Plan = 45; category.Upsert(); var category1 = new Category(); category1.Name = "test1"; category1.Plan = 45; category1.Upsert(); var categories = repositoryCore.GetCategories(); Assert.IsNotNull(categories); Assert.IsNotNull(categories.FirstOrDefault(c => c.Name == category.Name)); Assert.AreEqual(2, categories.Count); }
public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); ParentViewController.Title = StaticValues.ReportNavigationTitle; foreach (var view in View.Subviews) { view.RemoveFromSuperview(); } SFChart chart = new SFChart(); chart.Frame = this.View.Frame; chart.Legend.Visible = true; SFCategoryAxis primaryAxis = new SFCategoryAxis(); chart.PrimaryAxis = primaryAxis; chart.ColorModel.Palette = SFChartColorPalette.Custom; chart.ColorModel.CustomColors = NSArray.FromObjects(StaticValues.DarkBlue, StaticValues.LightBlue); var repository = new RepositoryCore(CoreUtilities.GetLogService()); var topCategories = repository.GetTopCategories(); var totalExpense = repository.GetExpenses(); var averageSpent = totalExpense.Count == 0 ? 0 : totalExpense.Average(e => e.Value); if (topCategories.Count > 0) { var dataModel = new ReportChartDataSource(topCategories, averageSpent); chart.DataSource = dataModel as SFChartDataSource; this.View.AddSubview(chart); chart.Frame = new RectangleF(10, 70, (float)View.Bounds.Width - 10, (float)View.Bounds.Height - 160); } }
public void DbSetup() { if (File.Exists(_dbPath)) { File.Delete(_dbPath); } var db = new SQLiteConnection(new SQLitePlatformIOS(), _dbPath); db.CreateTable <Category>(); db.CreateTable <Expense>(); db.CreateTable <Setting>(); RepositoryCore.SetCurrentMonth(DateTime.Now.Year, DateTime.Now.Month); var category = new Category() { Name = "category", Plan = 20 }; category.Upsert(); _categoryId = category.Id; }
public void GetExpenses_WhenExpensesExist() { DbSetup(); var db = new SQLiteConnection(new SQLitePlatformIOS(), _dbPath); var repositoryCore = new RepositoryCore(new LogService()); var category = new Category(); category.Name = "test"; category.Plan = 45; category.Upsert(); var beginingOfMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 1, 1, 1); db.Insert(new Expense() { CategoryId = category.Id, Value = 230, Description = "for unit test" }); db.Insert(new Expense() { CategoryId = category.Id, Value = 230, ExpenseDate = DateTime.Now.AddMonths(-1) }); db.Insert(new Expense() { CategoryId = category.Id, Value = 230, ExpenseDate = beginingOfMonth }); db.Insert(new Expense() { CategoryId = category.Id, Value = 230, ExpenseDate = beginingOfMonth.AddHours(-2) }); var expenses = repositoryCore.GetExpenses(); Assert.IsNotNull(expenses); Assert.AreEqual(2, expenses.Count); Assert.AreEqual(230, expenses.Where(e => e.Description == "for unit test").First().Value); }