package com.ufund.api.ufundapi.model; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import com.ufund.api.ufundapi.model.Need.GoalType; @Tag("Model-tier") public class NeedTest { @Test public void createNeed() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); assertNotNull(need); } @Test public void testFields() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); assertEquals(name, need.getName()); assertEquals(0, need.getId()); assertEquals(maxGoal, need.getMaxGoal()); assertEquals(type, need.getType()); } @Test public void testCurrentGoal() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); double current = 0.00; need.setCurrent(current); assertEquals(current, need.getCurrent()); current = 100.00; need.setCurrent(current); assertEquals(current, need.getCurrent()); current = -100.00; need.setCurrent(current); assertEquals(current, need.getCurrent()); } @Test public void testFilterAttributes() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); String[] filterAttributes = {"seaweed", "divers", "pacific", "plankton"}; need.setFilterAttributes(filterAttributes); assertEquals(need.getFilterAttributes(), filterAttributes); } @Test public void testSetMaxGoal() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); double newGoal = 200.00; need.setMaxGoal(newGoal); assertEquals(newGoal, need.getMaxGoal()); } @Test public void testSetName() { String name = "Jellyfish"; String location = "Atlantis"; double maxGoal = 100.0; GoalType type = Need.GoalType.MONETARY; boolean urgent = false; var need = new Need(name, location, maxGoal, type, urgent); String newName = "TESTINGFUN"; need.setName(newName); assertEquals(newName, need.getName()); } }