import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:garden_planner/constance.dart'; import 'package:garden_planner/entities/plant.dart'; import 'package:garden_planner/logic/plant.service.dart'; import '../helpers/plant_generator.dart'; void main() { test('PlantService isActionNeeded should work', () { // Arrange final PlantService plantService = PlantService(); final Plant plant = PlantGenerator.getPlant(); // Act var actionShouldBeTrue = plantService.isActionNeeded(plant, DateTime(2023, 05, 01)); var actionShouldBeFalseBecauseNoEntry = plantService.isActionNeeded(plant, DateTime(2023, 07, 01)); var actionShouldBeFalse = plantService.isActionNeeded(plant, DateTime(2023, 10, 01)); // Assert expect(actionShouldBeTrue, equals(true), reason: 'PlantService isActionNeeded ist between but returns false'); expect(actionShouldBeFalse, equals(false), reason: 'PlantService isActionNeeded ist outside set but returns true'); expect(actionShouldBeFalseBecauseNoEntry, equals(false), reason: 'PlantService isActionNeeded ist not set but returns true'); }); test('PlantService getTimeDescription should work', () { // Arrange final PlantService plantService = PlantService(); final Plant plant = PlantGenerator.getPlant(); // Act var descritpionJanuar = plantService.getTimeDescription(plant, DateTime(2023, 01, 01)); var descritpionApril = plantService.getTimeDescription(plant, DateTime(2023, 04, 02)); var descritpionMai = plantService.getTimeDescription(plant, DateTime(2023, 05, 20)); var descritpionJuni = plantService.getTimeDescription(plant, DateTime(2023, 06, 20)); // Assert expect(descritpionJanuar, equals(Constance.defaultDescription), reason: 'Description is not equal'); expect(descritpionMai, equals('Wachstumsphase'), reason: 'Description is not equal'); expect(descritpionApril, equals('Aussaat'), reason: 'Description is not equal'); expect(descritpionJuni, equals('Erntezeit'), reason: 'Description is not equal'); }); test('PlantService getTimeDescription extremValues should work', () { // Arrange final PlantService plantService = PlantService(); final Plant plant = PlantGenerator.getPlant(); // Act var descritpionBevorWachstum = plantService.getTimeDescription(plant, DateTime(2023, 05, 15)); var descritpionWachstumstart = plantService.getTimeDescription(plant, DateTime(2023, 05, 16)); var descritpionWachstumEnd = plantService.getTimeDescription(plant, DateTime(2023, 06, 15)); var descritpionAfterWachstum = plantService.getTimeDescription(plant, DateTime(2023, 06, 16)); // Assert expect(descritpionBevorWachstum, isNot(equals('Wachstumsphase')), reason: 'Description returns wrong value bevor'); expect(descritpionWachstumstart, equals('Wachstumsphase'), reason: 'Description returns wrong value start'); expect(descritpionWachstumEnd, equals('Wachstumsphase'), reason: 'Description returns wrong value end'); expect(descritpionAfterWachstum, isNot(equals('Wachstumsphase')), reason: 'Description returns wrong value after'); }); test('PlantService getColor should work', () { // Arrange final PlantService plantService = PlantService(); final Plant plant = PlantGenerator.getPlant(); // Act var descritpionJanuar = plantService.getColor(plant, DateTime(2023, 01, 01)); var descritpionApril = plantService.getColor(plant, DateTime(2023, 04, 02)); var descritpionMai = plantService.getColor(plant, DateTime(2023, 05, 20)); var descritpionJuni = plantService.getColor(plant, DateTime(2023, 06, 20)); // Assert expect(descritpionJanuar, equals(Constance.defaultColor), reason: 'Color is not equal'); expect(descritpionMai, equals(Colors.purple), reason: 'Description is not equal'); expect(descritpionApril, equals(Colors.yellow), reason: 'Description is not equal'); expect(descritpionJuni, equals(Colors.red), reason: 'Description is not equal'); }); }