extended tests for Zones

This commit is contained in:
Elias Csomor 2022-10-31 10:07:06 +01:00
parent 160880d4f5
commit 146c43d5d9
2 changed files with 46 additions and 6 deletions

View File

@ -1,5 +1,6 @@
package ch.zhaw.gartenverwaltung.io; package ch.zhaw.gartenverwaltung.io;
import ch.zhaw.gartenverwaltung.types.GrowthPhase;
import ch.zhaw.gartenverwaltung.types.HardinessZone; import ch.zhaw.gartenverwaltung.types.HardinessZone;
import ch.zhaw.gartenverwaltung.types.Plant; import ch.zhaw.gartenverwaltung.types.Plant;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@ -82,6 +83,12 @@ public class JsonPlantDatabase implements PlantDatabase {
result = mapper.readerForListOf(Plant.class).readValue(dataSource); result = mapper.readerForListOf(Plant.class).readValue(dataSource);
for (Plant plant : result) { 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); plant.inZone(currentZone);
} }

View File

@ -26,7 +26,7 @@ public class JsonPlantDatabaseTest {
@Test @Test
@DisplayName("Check if results are retrieved completely") @DisplayName("Check if results are retrieved completely")
void getPlantList() { void getPlantListNotEmpty() {
List<Plant> testList; List<Plant> testList;
try { try {
testList = testDatabase.getPlantList(HardinessZone.ZONE_8A); testList = testDatabase.getPlantList(HardinessZone.ZONE_8A);
@ -42,13 +42,47 @@ public class JsonPlantDatabaseTest {
Assertions.assertEquals(expected,names); 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 @Test
@DisplayName("Check whether single access works.") @DisplayName("Check whether single access works.")
void getPlantById() { void getPlantByIdAndZone() {
Optional<Plant> testPlant; Optional<Plant> testPlant;
try { try {
testDatabase.getPlantList(HardinessZone.ZONE_8A); testPlant = testDatabase.getPlantById(HardinessZone.ZONE_8A, 1);
testPlant = testDatabase.getPlantById(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) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} catch (HardinessZoneNotSetException e) { } catch (HardinessZoneNotSetException e) {
@ -63,8 +97,7 @@ public class JsonPlantDatabaseTest {
void getPlantByIdMustFail() { void getPlantByIdMustFail() {
Optional<Plant> testPlant; Optional<Plant> testPlant;
try { try {
testDatabase.getPlantList(HardinessZone.ZONE_8A); testPlant = testDatabase.getPlantById(HardinessZone.ZONE_8A, 99);
testPlant = testDatabase.getPlantById(99);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} catch (HardinessZoneNotSetException e) { } catch (HardinessZoneNotSetException e) {