extended tests for Zones
This commit is contained in:
parent
160880d4f5
commit
146c43d5d9
|
@ -1,5 +1,6 @@
|
|||
package ch.zhaw.gartenverwaltung.io;
|
||||
|
||||
import ch.zhaw.gartenverwaltung.types.GrowthPhase;
|
||||
import ch.zhaw.gartenverwaltung.types.HardinessZone;
|
||||
import ch.zhaw.gartenverwaltung.types.Plant;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
@ -82,6 +83,12 @@ public class JsonPlantDatabase implements PlantDatabase {
|
|||
result = mapper.readerForListOf(Plant.class).readValue(dataSource);
|
||||
|
||||
for (Plant plant : result) {
|
||||
// for discussion because of failing tests:
|
||||
// for(GrowthPhase growthPhase: plant.lifecycle()) {
|
||||
// if(growthPhase.zone()==zone) {
|
||||
// keep in result, remove if no match
|
||||
// }
|
||||
// }
|
||||
plant.inZone(currentZone);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ public class JsonPlantDatabaseTest {
|
|||
|
||||
@Test
|
||||
@DisplayName("Check if results are retrieved completely")
|
||||
void getPlantList() {
|
||||
void getPlantListNotEmpty() {
|
||||
List<Plant> testList;
|
||||
try {
|
||||
testList = testDatabase.getPlantList(HardinessZone.ZONE_8A);
|
||||
|
@ -42,13 +42,47 @@ public class JsonPlantDatabaseTest {
|
|||
Assertions.assertEquals(expected,names);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check if results are retrieved correctly when empty")
|
||||
void getPlantListEmpty() {
|
||||
List<Plant> testList;
|
||||
try {
|
||||
testList = testDatabase.getPlantList(HardinessZone.ZONE_1A);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (HardinessZoneNotSetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Assertions.assertEquals(0, testList.size());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check whether single access works.")
|
||||
void getPlantById() {
|
||||
void getPlantByIdAndZone() {
|
||||
Optional<Plant> testPlant;
|
||||
try {
|
||||
testDatabase.getPlantList(HardinessZone.ZONE_8A);
|
||||
testPlant = testDatabase.getPlantById(1);
|
||||
testPlant = testDatabase.getPlantById(HardinessZone.ZONE_8A, 1);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (HardinessZoneNotSetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Assertions.assertTrue(testPlant.isPresent());
|
||||
Assertions.assertEquals("Early Carrot", testPlant.get().name());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check whether single access respects zone correctly.")
|
||||
void getPlantByIdAndWrongZone() {
|
||||
Optional<Plant> testPlant;
|
||||
try {
|
||||
testPlant = testDatabase.getPlantById(HardinessZone.ZONE_1A, 1);
|
||||
Assertions.assertFalse(testPlant.isPresent());
|
||||
testPlant = testDatabase.getPlantById(HardinessZone.ZONE_8A, 1);
|
||||
Assertions.assertTrue(testPlant.isPresent());
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (HardinessZoneNotSetException e) {
|
||||
|
@ -63,8 +97,7 @@ public class JsonPlantDatabaseTest {
|
|||
void getPlantByIdMustFail() {
|
||||
Optional<Plant> testPlant;
|
||||
try {
|
||||
testDatabase.getPlantList(HardinessZone.ZONE_8A);
|
||||
testPlant = testDatabase.getPlantById(99);
|
||||
testPlant = testDatabase.getPlantById(HardinessZone.ZONE_8A, 99);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (HardinessZoneNotSetException e) {
|
||||
|
|
Loading…
Reference in New Issue