Skip to content
Snippets Groups Projects
Commit 5a17d7d8 authored by Adele Iren Westrum Kjølstad's avatar Adele Iren Westrum Kjølstad
Browse files

Add tests and some exception handling for GeneralBudget

parent 77724320
No related branches found
No related tags found
1 merge request!11Budget
......@@ -29,10 +29,16 @@ public class GeneralBudget {
*
*/
public GeneralBudget(int budgetPeriod, List<BudgetItem> listOfItems, double maxAmount){
if (budgetPeriod < 0) {
throw new IllegalArgumentException("The period cant be under zero days");
}
if (maxAmount < 0) {
throw new IllegalArgumentException("The maxamount of the budget cant be under zero");
}
this.budgetPeriod = budgetPeriod;
this.maxAmount = maxAmount;
this.listOfItems = listOfItems;
}
/**
......
package no.ntnu.idatt1002.demo.data.Budget;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class FoodBudgetTest {
@Test
void set_amount_budget() {
FoodBudget foodBudget = new FoodBudget(30, 0);
int amount = 2000;
foodBudget.setAmountBudget(amount);
assertEquals(amount, foodBudget.getBudgetAmount());
}
@Test
void set_amount_budget_negativ_amount() {
FoodBudget foodBudget = new FoodBudget(30, 0);
int amount = -2000;
assertThrows(IllegalArgumentException.class, () -> foodBudget.setAmountBudget(amount));
}
@Test
void set_budget_period() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int period = 30;
foodBudget.setBudgetPeriod(period);
assertEquals(period,foodBudget.getBudgetPeriod());
}
@Test
void set_budget_period_negative_period() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int period = -5;
assertThrows(IllegalArgumentException.class, () -> foodBudget.setBudgetPeriod(period));
}
@Test
void add_to_budget_positive_number() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int beforeAdding = foodBudget.getBudgetAmount();
int amountToBeAdded = 50;
foodBudget.addToBudget(amountToBeAdded);
assertEquals(beforeAdding + amountToBeAdded, foodBudget.getBudgetAmount());
}
@Test
void add_to_budget_negative_number() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int amountToBeAdded = -7;
assertThrows(IllegalArgumentException.class, () -> foodBudget.addToBudget(amountToBeAdded));
}
@Test
void subtract_from_budget_positive_number() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int beforeSubtracting = foodBudget.getBudgetAmount();
int amountToBeSubtracted = 50;
foodBudget.subtractFromBudget(amountToBeSubtracted);
assertEquals(beforeSubtracting - amountToBeSubtracted, foodBudget.getBudgetAmount());
}
@Test
void subtract_from_budget_negative_number() {
FoodBudget foodBudget = new FoodBudget(0, 30);
int amountToBeSubtracted = -7;
assertThrows(IllegalArgumentException.class, () -> foodBudget.subtractFromBudget(amountToBeSubtracted));
}
@Test
void getDaysLeftOfBudgetPeriod(){
}
}
\ No newline at end of file
package no.ntnu.idatt1002.demo.data.Budget;
import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class GeneralBudgetTest {
@Test
@DisplayName("Constructor throws exception when the periodAmount is under zero")
void constructor_throws_exception_when_periodAmount_under_zero(){
List<BudgetItem> list = new ArrayList<>();
assertThrows(IllegalArgumentException.class, () -> new GeneralBudget(-1, list, 1200));
}
@Test
@DisplayName("Constructor throws exception when maxAmount is under zero")
void constructor_throws_exception_when_maxAmount_under_zero(){
List<BudgetItem> list = new ArrayList<>();
assertThrows(IllegalArgumentException.class, () -> new GeneralBudget(10, list, -12));
}
@Test
@DisplayName("AddToBudget throws when totalSum is higher than maxAmount ")
void add_to_budget_throws_when_totalSum_is_over_maxAmount(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
assertThrows(IllegalArgumentException.class, () -> budget1.addToBudget(1300, "Food", ExpenseCategory.FOOD));
}
@Test
@DisplayName("addToBudget throws when a budget with same category already exists")
void add_to_budget_throws_when_a_budget_with_same_category_already_exists(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
budget1.addToBudget(500, "Food", ExpenseCategory.FOOD);
assertThrows(IllegalArgumentException.class, () -> budget1.addToBudget(200, "Food", ExpenseCategory.FOOD));
}
@Test
@DisplayName("Adds a budget to generalBudget")
void add_budget_to_generalBudget(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
BudgetItem item1 = new BudgetItem(500, "Food", ExpenseCategory.FOOD);
budget1.addToBudget(500, "Food", ExpenseCategory.FOOD);
assertEquals(1, list.size());
}
@Test
@DisplayName("Checks if the list contains a item with a given category")
void checks_if_the_list_contains_an_item_with_this_category_true(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
budget1.addToBudget(500, "Food", ExpenseCategory.FOOD);
assertTrue(budget1.checksListOfItemsContainsBudgetItem(ExpenseCategory.FOOD));
}
@Test
@DisplayName("checks that the list does not contain an item with the given category")
void checks_if_the_list_contains_an_item_with_this_category_false(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
budget1.addToBudget(500, "Books", ExpenseCategory.BOOKS);
assertFalse(budget1.checksListOfItemsContainsBudgetItem(ExpenseCategory.FOOD));
}
@Test
@DisplayName("Checks that the getTotalSum gives the correct number")
void get_total_sum_of_all_budgetItems_in_the_budget(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
budget1.addToBudget(500, "Books", ExpenseCategory.BOOKS);
budget1.addToBudget(300, "Food", ExpenseCategory.FOOD);
assertEquals(800, budget1.totalSum());
}
@Test
@DisplayName("Checks that an item gets deleted from the budget")
void delete_from_budget(){
List<BudgetItem> list = new ArrayList<>();
GeneralBudget budget1 = new GeneralBudget(12, list, 1200);
budget1.addToBudget(500, "Books", ExpenseCategory.BOOKS);
budget1.deleteItemFromBudget(ExpenseCategory.BOOKS);
assertTrue(list.isEmpty());
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment