public void TestGetRecordsByCategory() { CategoryModel categoryModel = new CategoryModel(); Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record recordMoviePositive = new Record(date, categoryMovie, 100); Record recordMovieNegative = new Record(date, categoryMovie, -100); Record recordWorkPositive = new Record(date, categoryWork, 100); Record recordWorkNegative = new Record(date, categoryWork, -100); recordModel.AddRecord(recordMoviePositive); recordModel.AddRecord(recordMovieNegative); recordModel.AddRecord(recordMovieNegative); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); BindingList <Record> movieRecords; movieRecords = recordModel.GetRecords(categoryMovie); Assert.AreEqual(3, movieRecords.Count); BindingList <Record> workRecords; workRecords = recordModel.GetRecords(categoryWork); Assert.AreEqual(7, workRecords.Count); }
public void TestAddRecord() { CategoryModel categoryModel = new CategoryModel(); Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record recordMoviePositive = new Record(date, categoryMovie, 100); Record recordMovieNegative = new Record(date, categoryMovie, -100); Record recordWorkPositive = new Record(date, categoryWork, 100); Record recordWorkNegative = new Record(date, categoryWork, -100); recordModel.AddRecord(recordMoviePositive); Assert.AreEqual(1, recordModel.Records.Count); recordModel.AddRecord(recordMovieNegative); Assert.AreEqual(2, recordModel.Records.Count); recordModel.AddRecord(recordWorkPositive); Assert.AreEqual(3, recordModel.Records.Count); recordModel.AddRecord(recordWorkNegative); Assert.AreEqual(4, recordModel.Records.Count); }
public void TestStatistic() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 Statistic statistic = statisticModel.GetStatistic(categoryWork, true); Assert.AreEqual(10000, statistic.Amounts); Assert.AreEqual(categoryWork, statistic.Category); Assert.AreEqual(4, statistic.Count); }
public void TestGetBalance() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -2000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -3000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 int balance = statisticModel.GetBalance(recordModel.Records); Assert.AreEqual(4000, balance); }
public void TestWriteRecordToFile() { CategoryModel categoryModel = new CategoryModel(); Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record recordMoviePositive = new Record(date, categoryMovie, 100); Record recordMovieNegative = new Record(date, categoryMovie, -100); Record recordWorkPositive = new Record(date, categoryWork, 100); Record recordWorkNegative = new Record(date, categoryWork, -100); recordModel.AddRecord(recordMoviePositive); recordModel.AddRecord(recordMovieNegative); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkNegative); BindingList <Record> records = recordModel.Records; recordModel.WriteRecordToFile(); recordModel = new RecordModel(categoryModel); recordModel.ReadRecordFromFile(); Assert.AreEqual(records.Count, recordModel.Records.Count); }
public void TestRemoveRecordsByCategory() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 Record record1 = new Record(DateTime.Now, new Category(CATEGORY_NAME_MOVIE), 100); Record record2 = new Record(DateTime.Now, new Category(CATEGORY_NAME_MOVIE), 100); Record record3 = new Record(DateTime.Now, new Category(CATEGORY_NAME_WORK), 100); Record record4 = new Record(DateTime.Now, new Category(CATEGORY_NAME_MOVIE), 100); recordModel.AddRecord(record1); recordModel.AddRecord(record2); recordModel.AddRecord(record3); recordModel.AddRecord(record4); recordModel.RemoveRecordsByCategory(new Category(CATEGORY_NAME_WORK)); Assert.AreEqual(3, recordModel.Records.Count); }
public void TestChangeAmount() { EZMoneyModel ezMoneyModel = new EZMoneyModel(); // TODO: 初始化為適當值 RecordPresentationModel recordPModel = new RecordPresentationModel(ezMoneyModel); // TODO: 初始化為適當值 RecordModel recordModel = ezMoneyModel.RecordModel; CategoryModel categoryModel = ezMoneyModel.CategoryModel; recordModel.Records.Clear(); categoryModel.Categories.Clear(); Category category = new Category(CATEGORY_NAME_MOVIE); categoryModel.AddCategory(category); DateTime date = DateTime.Now; // TODO: 初始化為適當值 Record record = new Record(date, category, 100); recordModel.AddRecord(record); recordPModel.SelectRecord(0); const String AMOUNT_ORIGIN = "100"; const string AMOUNT_AFTER = "200"; Assert.AreEqual(AMOUNT_ORIGIN, recordPModel.Amount); recordPModel.ChangeAmount(AMOUNT_AFTER); Assert.AreEqual(AMOUNT_AFTER, recordPModel.Amount); recordPModel.IsSelectionMode = false; recordPModel.ChangeAmount(AMOUNT_AFTER); Assert.AreEqual(AMOUNT_AFTER, recordPModel.Amount); }
public void TestGetAmounts() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -2000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -3000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 int income = statisticModel.GetAmounts(recordModel.Records, true); Assert.AreEqual(10000, income); int expense = statisticModel.GetAmounts(recordModel.Records, false); Assert.AreEqual(-6000, expense); }
public void TestGetExpenseStatistics() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, 1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, 1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 BindingList <Statistic> statistics; statistics = statisticModel.GetExpenseStatistics(); Assert.AreEqual(1, statistics.Count); }
public void TestGetRecordsWithCategoryAndPositive() { CategoryModel categoryModel = new CategoryModel(); Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record recordMoviePositive = new Record(date, categoryMovie, 100); Record recordMovieNegative = new Record(date, categoryMovie, -100); Record recordWorkPositive = new Record(date, categoryWork, 100); Record recordWorkNegative = new Record(date, categoryWork, -100); recordModel.AddRecord(recordMoviePositive); recordModel.AddRecord(recordMovieNegative); recordModel.AddRecord(recordMovieNegative); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkPositive); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); recordModel.AddRecord(recordWorkNegative); BindingList <Record> positiveMovieRecords; positiveMovieRecords = recordModel.GetRecords(categoryMovie, true); Assert.AreEqual(1, positiveMovieRecords.Count); BindingList <Record> negativeMovieRecords; negativeMovieRecords = recordModel.GetRecords(categoryMovie, false); Assert.AreEqual(2, negativeMovieRecords.Count); BindingList <Record> positiveWorkRecords; positiveWorkRecords = recordModel.GetRecords(categoryWork, true); Assert.AreEqual(3, positiveWorkRecords.Count); BindingList <Record> negativeWorkRecords; negativeWorkRecords = recordModel.GetRecords(categoryWork, false); Assert.AreEqual(4, negativeWorkRecords.Count); }
public void TestSelectRecord() { EZMoneyModel ezMoneyModel = new EZMoneyModel(); // TODO: 初始化為適當值 RecordPresentationModel recordPModel = new RecordPresentationModel(ezMoneyModel); // TODO: 初始化為適當值 RecordModel recordModel = ezMoneyModel.RecordModel; CategoryModel categoryModel = ezMoneyModel.CategoryModel; recordPModel.InitializeState(); Category category = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(category); DateTime date = DateTime.Now; recordModel.AddRecord(date, ref category, 100); recordModel.AddRecord(date, ref category, -100); recordPModel.SelectRecord(0); Assert.AreEqual(0, recordPModel.RecordIndex); recordPModel.SelectRecord(1); Assert.AreEqual(1, recordPModel.RecordIndex); recordPModel.SelectRecord(-1); Assert.IsFalse(recordPModel.IsSelectionMode); }
public void TestAddRecordByConstructor() { CategoryModel categoryModel = new CategoryModel(); RecordModel recordModel = new RecordModel(categoryModel); DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Category category1 = new Category(CATEGORY_NAME_MOVIE); recordModel.AddRecord(date, ref category1, 100); Assert.AreEqual(1, recordModel.Records.Count); Category category2 = new Category(CATEGORY_NAME_MOVIE); recordModel.AddRecord(date, ref category2, 100); Assert.AreEqual(2, recordModel.Records.Count); Category category3 = new Category(CATEGORY_NAME_WORK); recordModel.AddRecord(date, ref category3, 100); Assert.AreEqual(3, recordModel.Records.Count); Category category4 = new Category(CATEGORY_NAME_WORK); recordModel.AddRecord(date, ref category4, -100); Assert.AreEqual(4, recordModel.Records.Count); }
public void TestStatisticDataGridViewDataSource() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -2000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -3000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 BindingList <Statistic> incomeStatistics = statisticModel.GetStatisticDataGridViewDataSource(true); BindingList <Statistic> expenseStatistics = statisticModel.GetStatisticDataGridViewDataSource(false); Assert.AreEqual(1, incomeStatistics.Count); int incomeAmount = 0; foreach (Statistic statistic in incomeStatistics) { incomeAmount += statistic.Amounts; } Assert.AreEqual(10000, incomeAmount); int expenseAmount = 0; foreach (Statistic statistic in expenseStatistics) { expenseAmount += statistic.Amounts; } Assert.AreEqual(-6000, expenseAmount); }
public void TestCancel() { EZMoneyModel ezMoneyModel = new EZMoneyModel(); // TODO: 初始化為適當值 RecordPresentationModel recordPModel = new RecordPresentationModel(ezMoneyModel); // TODO: 初始化為適當值 RecordModel recordModel = ezMoneyModel.RecordModel; CategoryModel categoryModel = ezMoneyModel.CategoryModel; recordModel.Records.Clear(); categoryModel.Categories.Clear(); Category category = new Category(CATEGORY_NAME_MOVIE); categoryModel.AddCategory(category); DateTime date = DateTime.Now; // TODO: 初始化為適當值 Record record = new Record(date, category, 100); recordModel.AddRecord(record); recordPModel.SelectRecord(0); Assert.AreEqual(true, recordPModel.IsSelectionMode); recordPModel.Cancel(); Assert.AreEqual(false, recordPModel.IsSelectionMode); }
public void TestClickDataGridView() { EZMoneyModel ezMoneyModel = new EZMoneyModel(); // TODO: 初始化為適當值 StatisticPresentationModel statisticPModel = new StatisticPresentationModel(ezMoneyModel); // TODO: 初始化為適當值 CategoryModel categoryModel = ezMoneyModel.CategoryModel; RecordModel recordModel = ezMoneyModel.RecordModel; Category category1 = new Category(CATEGORY_NAME_WORK); Category category2 = new Category(CATEGORY_NAME_MOVIE); categoryModel.AddCategory(category1); categoryModel.AddCategory(category2); DateTime date = DateTime.Now; Record record1 = new Record(date, category1, 100); Record record2 = new Record(date, category1, 200); Record record3 = new Record(date, category1, 300); Record record4 = new Record(date, category1, 400); Record record5 = new Record(date, category2, -100); Record record6 = new Record(date, category2, -200); Record record7 = new Record(date, category2, -300); recordModel.AddRecord(record1); recordModel.AddRecord(record2); recordModel.AddRecord(record3); recordModel.AddRecord(record4); recordModel.AddRecord(record5); recordModel.AddRecord(record6); recordModel.AddRecord(record7); statisticPModel.InitializeState(); BindingList <Record> records = statisticPModel.ClickDataGridView(category1); Assert.AreEqual(4, statisticPModel.RecordList.Count); Assert.AreEqual(records, statisticPModel.RecordList); statisticPModel.ChangeRadioButton(false); statisticPModel.ClickDataGridView(category2); Assert.AreEqual(3, statisticPModel.RecordList.Count); }
public void TestStatisticDataGridViewDataSource() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -2000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -3000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 BindingList<Statistic> incomeStatistics = statisticModel.GetStatisticDataGridViewDataSource(true); BindingList<Statistic> expenseStatistics = statisticModel.GetStatisticDataGridViewDataSource(false); Assert.AreEqual(1, incomeStatistics.Count); int incomeAmount = 0; foreach (Statistic statistic in incomeStatistics) { incomeAmount += statistic.Amounts; } Assert.AreEqual(10000, incomeAmount); int expenseAmount = 0; foreach (Statistic statistic in expenseStatistics) { expenseAmount += statistic.Amounts; } Assert.AreEqual(-6000, expenseAmount); }
public void TestIncomeStatistics() { CategoryModel categoryModel = new CategoryModel(); // TODO: 初始化為適當值 Category categoryMovie = new Category(CATEGORY_NAME_MOVIE); Category categoryWork = new Category(CATEGORY_NAME_WORK); categoryModel.AddCategory(categoryMovie); categoryModel.AddCategory(categoryWork); RecordModel recordModel = new RecordModel(categoryModel); // TODO: 初始化為適當值 DateTime now = DateTime.Now; DateTime date = new DateTime(now.Year, now.Month, now.Day); Record movieRecord = new Record(date, categoryMovie, -1000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -2000); recordModel.AddRecord(movieRecord); movieRecord = new Record(date, categoryMovie, -3000); recordModel.AddRecord(movieRecord); Record workRecord = new Record(date, categoryWork, 1000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 2000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 3000); recordModel.AddRecord(workRecord); workRecord = new Record(date, categoryWork, 4000); recordModel.AddRecord(workRecord); StatisticModel statisticModel = new StatisticModel(categoryModel, recordModel); // TODO: 初始化為適當值 BindingList<Statistic> statistics = statisticModel.GetIncomeStatistics(); Assert.AreEqual(1, statistics.Count); int amount = 0; foreach (Statistic statistic in statistics) { amount += statistic.Amounts; } Assert.AreEqual(10000, amount); }