Compare commits
No commits in common. "98ff259d95910564117f6abdc9f36d5bafe00fe8" and "da7a31f512327dd110db58074c27446d840c51b4" have entirely different histories.
98ff259d95
...
da7a31f512
|
@ -3,12 +3,10 @@ package ch.zhaw.gartenverwaltung.plantList;
|
||||||
import ch.zhaw.gartenverwaltung.io.HardinessZoneNotSetException;
|
import ch.zhaw.gartenverwaltung.io.HardinessZoneNotSetException;
|
||||||
import ch.zhaw.gartenverwaltung.io.JsonPlantDatabase;
|
import ch.zhaw.gartenverwaltung.io.JsonPlantDatabase;
|
||||||
import ch.zhaw.gartenverwaltung.io.PlantDatabase;
|
import ch.zhaw.gartenverwaltung.io.PlantDatabase;
|
||||||
import ch.zhaw.gartenverwaltung.types.GrowthPhaseType;
|
|
||||||
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 java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.MonthDay;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -110,9 +108,7 @@ public class PlantListModel {
|
||||||
* @throws IOException If the database cannot be accessed
|
* @throws IOException If the database cannot be accessed
|
||||||
*/
|
*/
|
||||||
public List<Plant> getFilteredPlantListByString(HardinessZone zone, String searchString) throws HardinessZoneNotSetException, IOException {
|
public List<Plant> getFilteredPlantListByString(HardinessZone zone, String searchString) throws HardinessZoneNotSetException, IOException {
|
||||||
if(searchString.length() == 0){
|
if(searchString.charAt(0) == '#') {
|
||||||
return getPlantList(zone);
|
|
||||||
} else if(searchString.charAt(0) == '#') {
|
|
||||||
try {
|
try {
|
||||||
return getFilteredPlantListById(zone, Long.parseLong(searchString.substring(1)));
|
return getFilteredPlantListById(zone, Long.parseLong(searchString.substring(1)));
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
|
@ -122,44 +118,4 @@ public class PlantListModel {
|
||||||
return getFilteredPlantList(zone, plant -> plant.name().contains(searchString) || plant.description().contains(searchString));
|
return getFilteredPlantList(zone, plant -> plant.name().contains(searchString) || plant.description().contains(searchString));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param type GrowPhaseType to filter
|
|
||||||
* @param zone selected hardiness zone
|
|
||||||
* @param from the earliest date to for the filter
|
|
||||||
* @param to the lastest date for the filter
|
|
||||||
* @return List of Plants with selected saison
|
|
||||||
* @throws HardinessZoneNotSetException If no {@link HardinessZone} was specified
|
|
||||||
* @throws IOException If the database cannot be accessed
|
|
||||||
*/
|
|
||||||
private List<Plant> getFilteredPlantListBySaison(GrowthPhaseType type, HardinessZone zone, MonthDay from, MonthDay to) throws HardinessZoneNotSetException, IOException {
|
|
||||||
return getFilteredPlantList(zone, plant -> plant.lifecycle().stream().anyMatch(growthPhase -> growthPhase.startDate().compareTo(from) >= 0 && (growthPhase.startDate().compareTo(to) <= 0) && growthPhase.type() == type));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param zone selected hardiness zone
|
|
||||||
* @param from the earliest date to for the filter
|
|
||||||
* @param to the lastest date for the filter
|
|
||||||
* @return List of Plants with selected saison
|
|
||||||
* @throws HardinessZoneNotSetException If no {@link HardinessZone} was specified
|
|
||||||
* @throws IOException If the database cannot be accessed
|
|
||||||
*/
|
|
||||||
public List<Plant> getFilteredPlantListByPlantingSaison(HardinessZone zone, MonthDay from, MonthDay to) throws HardinessZoneNotSetException, IOException {
|
|
||||||
return getFilteredPlantListBySaison(GrowthPhaseType.PLANT, zone, from, to);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param zone selected hardiness zone
|
|
||||||
* @param from the earliest date to for the filter
|
|
||||||
* @param to the lastest date for the filter
|
|
||||||
* @return List of Plants with selected saison
|
|
||||||
* @throws HardinessZoneNotSetException If no {@link HardinessZone} was specified
|
|
||||||
* @throws IOException If the database cannot be accessed
|
|
||||||
*/
|
|
||||||
public List<Plant> getFilteredPlantListByHarvestSaison(HardinessZone zone, MonthDay from, MonthDay to) throws HardinessZoneNotSetException, IOException {
|
|
||||||
return getFilteredPlantListBySaison(GrowthPhaseType.HARVEST, zone, from, to);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,14 @@ package ch.zhaw.gartenverwaltung.plantList;
|
||||||
import ch.zhaw.gartenverwaltung.io.HardinessZoneNotSetException;
|
import ch.zhaw.gartenverwaltung.io.HardinessZoneNotSetException;
|
||||||
import ch.zhaw.gartenverwaltung.io.JsonPlantDatabase;
|
import ch.zhaw.gartenverwaltung.io.JsonPlantDatabase;
|
||||||
import ch.zhaw.gartenverwaltung.io.PlantDatabase;
|
import ch.zhaw.gartenverwaltung.io.PlantDatabase;
|
||||||
import ch.zhaw.gartenverwaltung.types.*;
|
import ch.zhaw.gartenverwaltung.types.HardinessZone;
|
||||||
|
import ch.zhaw.gartenverwaltung.types.Plant;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.MonthDay;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -47,11 +47,7 @@ class PlantListModelTest {
|
||||||
0,
|
0,
|
||||||
"sandy to loamy, loose soil, free of stones",
|
"sandy to loamy, loose soil, free of stones",
|
||||||
new ArrayList<>(),
|
new ArrayList<>(),
|
||||||
List.of(new GrowthPhase(MonthDay.of(6, 4), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.HARVEST, HardinessZone.ZONE_8A, new ArrayList<>()),
|
new ArrayList<>())
|
||||||
new GrowthPhase(MonthDay.of(4, 3), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>()),
|
|
||||||
new GrowthPhase(MonthDay.of(8, 5), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>()),
|
|
||||||
new GrowthPhase(MonthDay.of(2, 8), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>()),
|
|
||||||
new GrowthPhase(MonthDay.of(10, 2), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>())))
|
|
||||||
);
|
);
|
||||||
examplePlantList.add(new Plant(
|
examplePlantList.add(new Plant(
|
||||||
0,
|
0,
|
||||||
|
@ -61,8 +57,7 @@ class PlantListModelTest {
|
||||||
6,
|
6,
|
||||||
"sandy",
|
"sandy",
|
||||||
new ArrayList<>(),
|
new ArrayList<>(),
|
||||||
List.of(new GrowthPhase(MonthDay.of(6, 4), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.HARVEST, HardinessZone.ZONE_8A, new ArrayList<>()),
|
new ArrayList<>())
|
||||||
new GrowthPhase(MonthDay.of(6, 4), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>())))
|
|
||||||
);
|
);
|
||||||
examplePlantList.add(new Plant(
|
examplePlantList.add(new Plant(
|
||||||
1,
|
1,
|
||||||
|
@ -72,7 +67,7 @@ class PlantListModelTest {
|
||||||
0,
|
0,
|
||||||
"sandy to loamy, loose soil, free of stones",
|
"sandy to loamy, loose soil, free of stones",
|
||||||
new ArrayList<>(),
|
new ArrayList<>(),
|
||||||
List.of(new GrowthPhase(MonthDay.of(4, 4), MonthDay.of(12, 4), 0, new WateringCycle(0, 0, null), GrowthPhaseType.PLANT, HardinessZone.ZONE_8A, new ArrayList<>())))
|
new ArrayList<>())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,27 +165,5 @@ class PlantListModelTest {
|
||||||
assertEquals(examplePlantList.get(1), plantListResult.get(0));
|
assertEquals(examplePlantList.get(1), plantListResult.get(0));
|
||||||
plantListResult = model.getFilteredPlantListByString(HardinessZone.ZONE_8A, "apple");
|
plantListResult = model.getFilteredPlantListByString(HardinessZone.ZONE_8A, "apple");
|
||||||
assertEquals(0, plantListResult.size());
|
assertEquals(0, plantListResult.size());
|
||||||
plantListResult = model.getFilteredPlantListByString(HardinessZone.ZONE_8A, "");
|
|
||||||
assertEquals(3, plantListResult.size());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
void getFilteredPlantListByPlantingSaison() throws HardinessZoneNotSetException, IOException {
|
|
||||||
model.setCurrentZone(HardinessZone.ZONE_1A);
|
|
||||||
List<Plant> plantListResult = model.getFilteredPlantListByPlantingSaison(HardinessZone.ZONE_8A, MonthDay.of(4, 4), MonthDay.of(8, 4));
|
|
||||||
assertEquals(2, plantListResult.size());
|
|
||||||
assertEquals(examplePlantList.get(2), plantListResult.get(0));
|
|
||||||
assertEquals(examplePlantList.get(1), plantListResult.get(1));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void getFilteredPlantListByHarvestSaison() throws HardinessZoneNotSetException, IOException {
|
|
||||||
model.setCurrentZone(HardinessZone.ZONE_1A);
|
|
||||||
List<Plant> plantListResult = model.getFilteredPlantListByHarvestSaison(HardinessZone.ZONE_8A, MonthDay.of(4, 4), MonthDay.of(8, 4));
|
|
||||||
assertEquals(2, plantListResult.size());
|
|
||||||
assertEquals(examplePlantList.get(1), plantListResult.get(0));
|
|
||||||
assertEquals(examplePlantList.get(0), plantListResult.get(1));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue