initial GardenPlan tests
This commit is contained in:
parent
146c43d5d9
commit
5411ac69ae
|
@ -0,0 +1,101 @@
|
|||
package ch.zhaw.gartenverwaltung.io;
|
||||
|
||||
import ch.zhaw.gartenverwaltung.types.Crop;
|
||||
import ch.zhaw.gartenverwaltung.types.HardinessZone;
|
||||
import ch.zhaw.gartenverwaltung.types.Plant;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class JsonGardenPlanTest {
|
||||
GardenPlan testDatabase;
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||
|
||||
@BeforeEach
|
||||
void connectToDb() {
|
||||
testDatabase = new JsonGardenPlan();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@DisplayName("Check if results are retrieved completely.")
|
||||
void getCropsNotEmpty() {
|
||||
List<Crop> testList;
|
||||
try {
|
||||
testList = testDatabase.getCrops();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Assertions.assertEquals(3, testList.size());
|
||||
|
||||
List<Long> plantIds = testList.stream().map(Crop::getPlantId).collect(Collectors.toList());
|
||||
List<Long> expected = Arrays.asList(1l, 1l, 0l);
|
||||
Assertions.assertEquals(expected, plantIds);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Check whether single access works.")
|
||||
void getCropById() {
|
||||
Optional<Crop> testCrop;
|
||||
try {
|
||||
testCrop = testDatabase.getCropById(1);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertTrue(testCrop.isPresent());
|
||||
Assertions.assertEquals(1, testCrop.get().getPlantId());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@DisplayName("Check for a nonexisting crop.")
|
||||
void getCropByIdMustFail() {
|
||||
Optional<Crop> testCrop;
|
||||
try {
|
||||
testCrop = testDatabase.getCropById(99);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
Assertions.assertFalse(testCrop.isPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Add new Crop.")
|
||||
void addNewCrop() {
|
||||
|
||||
|
||||
Crop crop = new Crop(2l, LocalDate.parse("22.02.2023", formatter));
|
||||
try {
|
||||
testDatabase.saveCrop(crop);
|
||||
assertTrue(crop.getCropId().isPresent());
|
||||
Optional<Crop> testCrop;
|
||||
try {
|
||||
testCrop = testDatabase.getCropById(crop.getCropId().get());
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertTrue(testCrop.isPresent());
|
||||
Assertions.assertEquals(2l, testCrop.get().getPlantId());
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue