Feature/Fix-Invalid-TimeProgress-Name (#3)

Throw Exception when creating time progress with empty or null name.
Handle Exception when user creates new time progress or changes name.

Signed-off-by Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
Andreas Fahrecker
2020-11-21 19:57:47 +01:00
committed by GitHub
parent f43edc1ea7
commit 7cbd2eff40
5 changed files with 64 additions and 17 deletions

View File

@ -0,0 +1,7 @@
class TimeProgressInvalidNameException implements Exception {
final invalidName;
TimeProgressInvalidNameException(this.invalidName);
String errMsg() => "The name of a TimeProgress can't be: $invalidName";
}

View File

@ -1,4 +1,5 @@
import 'package:meta/meta.dart';
import 'package:time_progress_tracker/models/app_exceptions.dart';
import 'package:time_progress_tracker/persistence/time_progress_entity.dart';
import 'package:time_progress_tracker/uuid.dart';
@ -10,11 +11,15 @@ class TimeProgress {
final DateTime endTime;
TimeProgress(this.name, this.startTime, this.endTime, {String id})
: id = id ?? Uuid().generateV4();
: id = id ?? Uuid().generateV4() {
if (this.name == null || this.name == "") {
throw new TimeProgressInvalidNameException(this.name);
}
}
factory TimeProgress.initialDefault() {
int thisYear = DateTime.now().year;
return TimeProgress("", DateTime(thisYear - 1), DateTime(thisYear + 1));
return TimeProgress("Initial Name", DateTime(thisYear - 1), DateTime(thisYear + 1));
}
TimeProgress copyWith(