initial GardenPlan tests

This commit is contained in:
Elias Csomor 2022-10-31 11:15:27 +01:00
parent 146c43d5d9
commit 5411ac69ae
1 changed files with 101 additions and 0 deletions

View File

@ -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);
}
}
}