184 lines
6.0 KiB
Dart
184 lines
6.0 KiB
Dart
|
import 'package:flutter_test/flutter_test.dart';
|
||
|
import 'package:garden_planner/entities/beet.dart';
|
||
|
import 'package:garden_planner/entities/beet_row.dart';
|
||
|
import 'package:garden_planner/entities/plant.dart';
|
||
|
import 'package:garden_planner/entities/plant_in_row.dart';
|
||
|
import 'package:garden_planner/logic/beet.service.dart';
|
||
|
import 'package:garden_planner/logic/beet_row.service.dart';
|
||
|
import 'package:garden_planner/logic/plant.service.dart';
|
||
|
|
||
|
import '../helpers/plant_generator.dart';
|
||
|
|
||
|
void main() {
|
||
|
test('BeetRowService gethorizontalSpace should work', () {
|
||
|
//Plant1 Horizontal 3
|
||
|
//Plant2 Horizontal 6
|
||
|
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
beetRowService.addPlant(row, plant2);
|
||
|
|
||
|
// Act
|
||
|
var getMaxHorizontalSpace = beetRowService.getTotalHorizontalSpace(row);
|
||
|
|
||
|
// Assert
|
||
|
// space = 0.6+0.25
|
||
|
expect(getMaxHorizontalSpace, equals(0.85), reason: ' Space should be 0.8');
|
||
|
});
|
||
|
|
||
|
test('BeetRowService getHorizontalSpaceValue should work', () {
|
||
|
//Plant1 Horizontal 3
|
||
|
//Plant2 Horizontal 6
|
||
|
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
beetRowService.addPlant(row, plant2);
|
||
|
|
||
|
// Act
|
||
|
var getMaxHorizontalSpaceValues =
|
||
|
beetRowService.getHorizontalPlantingPosition(row);
|
||
|
|
||
|
// Assert
|
||
|
// Every Row takes the half horizontal Space, because the Plant will be placed in the middle
|
||
|
// for the second row, its the hole space of the previews and the half of the actual row
|
||
|
var plantHorizontal1 = (0.6 / 2);
|
||
|
var plantHorizontal2 = 0.6 + (0.25 / 2);
|
||
|
|
||
|
expect(getMaxHorizontalSpaceValues,
|
||
|
equals([plantHorizontal1, plantHorizontal2]),
|
||
|
reason: 'value is not right ');
|
||
|
});
|
||
|
|
||
|
test('BeetRowService isActionNeeded should work', () {
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
final PlantService plantService = PlantService();
|
||
|
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
beetRowService.addPlant(row, plant2);
|
||
|
|
||
|
// Act
|
||
|
var actionShouldBeTrue = beetRowService.isActionNeeded(
|
||
|
plantService, row, DateTime(2023, 05, 01));
|
||
|
|
||
|
var actionShouldBeFalseBecauseNoEntry = beetRowService.isActionNeeded(
|
||
|
plantService, row, DateTime(2023, 07, 01));
|
||
|
var actionShouldBeFalse = beetRowService.isActionNeeded(
|
||
|
plantService, row, DateTime(2023, 10, 01));
|
||
|
|
||
|
// Assert
|
||
|
expect(actionShouldBeTrue, equals(true), reason: 'action should be true ');
|
||
|
expect(actionShouldBeFalse, equals(false),
|
||
|
reason: 'action should be false because no entry ');
|
||
|
expect(actionShouldBeFalseBecauseNoEntry, equals(false),
|
||
|
reason: 'action should be false because its outside the date');
|
||
|
});
|
||
|
|
||
|
test('BeetRowService addPlant should work', () {
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
|
||
|
// Act
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
beetRowService.addPlant(row, plant2);
|
||
|
|
||
|
// Assert
|
||
|
expect(row.id, equals(0), reason: 'RowId is not 0');
|
||
|
expect(row.plants.length, equals(2), reason: 'Not all plants add');
|
||
|
|
||
|
expect(row.plants[0], isA<PlantInRow>(),
|
||
|
reason: 'plant1 not the right type');
|
||
|
expect(row.plants[1], isA<PlantInRow>(),
|
||
|
reason: 'plant2 not the right type');
|
||
|
|
||
|
expect(row.plants[0].id, equals(plant.id),
|
||
|
reason: 'plant1 is not the right plant');
|
||
|
expect(row.plants[1].id, equals(plant2.id),
|
||
|
reason: 'plant2 is not the right plant');
|
||
|
});
|
||
|
|
||
|
test('BeetRowService removePlantFromRowById should work', () {
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
beetRowService.addPlant(row, plant2);
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
|
||
|
// Act
|
||
|
|
||
|
beetRowService.removePlantFromRowById(row, 1);
|
||
|
|
||
|
// Assert
|
||
|
expect(row.plants.length, equals(2), reason: 'Row was not deleted');
|
||
|
expect(row.plants[0].id, equals(plant.id),
|
||
|
reason: 'Row 1 is not the right');
|
||
|
expect(row.plants[1].id, equals(plant.id),
|
||
|
reason: 'Row 1 is not the right');
|
||
|
});
|
||
|
|
||
|
test('BeetRowService removePlantFromRowById should throw no Exception', () {
|
||
|
// Arrange
|
||
|
final BeetRow row = BeetRow(0);
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant = PlantGenerator.getPlant();
|
||
|
|
||
|
beetRowService.addPlant(row, plant);
|
||
|
|
||
|
// Act
|
||
|
|
||
|
beetRowService.removePlantFromRowById(row, 14);
|
||
|
|
||
|
// Assert
|
||
|
// No exception should be thrown
|
||
|
});
|
||
|
|
||
|
test('BeetRowService removePlantFromRowById should work', () {
|
||
|
// Arrange
|
||
|
final BeetService beetService = BeetService();
|
||
|
final Beet beet = Beet();
|
||
|
final BeetRowService beetRowService = BeetRowService();
|
||
|
final Plant plant1 = PlantGenerator.getPlant();
|
||
|
final Plant plant2 = PlantGenerator.getPlant2();
|
||
|
|
||
|
beetService.addNewRow(beet);
|
||
|
beetService.addNewRow(beet);
|
||
|
|
||
|
beetService.addPlantToRowById(beet, beetRowService, 0, plant1);
|
||
|
|
||
|
beetService.addPlantToRowById(beet, beetRowService, 1, plant1);
|
||
|
|
||
|
beetService.addPlantToRowById(beet, beetRowService, 1, plant2);
|
||
|
// Act
|
||
|
|
||
|
var row = beetRowService.getRowById(beet, 1);
|
||
|
|
||
|
// Assert
|
||
|
expect(row.plants.length, equals(2), reason: 'Is the wrong row returned');
|
||
|
expect(row.plants[1].id, equals(plant2.id),
|
||
|
reason: 'Is the wrong row returned');
|
||
|
});
|
||
|
|
||
|
// DB Tests will be in next Release
|
||
|
}
|