File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -63,21 +63,28 @@ public void TaskPopulation_Fails_MessageNotifiesUser()
6363 }
6464
6565 [ Test ]
66- public void TaskDeletion_Fails_MessageNotifiesUser ( )
66+ public void TaskDeletion_Fails_MessageNotifiesUserAndTaskRemains ( )
6767 {
68+ // Arrange.
6869 var existingTask = DesktopTask ( ) ;
6970 var backendRepository =
7071 new InMemoryTaskRepository ( [ existingTask ] ) ;
71- backendRepository . FailAlways ( ) ;
72+
7273 var messageNotifierMock = new Mock < IMessageNotifier > ( ) ;
74+
7375 var sut = TaskListViewModel ( backendRepository , messageNotifierMock . Object ) ;
74-
76+ sut . PopulateTasks ( ) ;
77+ backendRepository . FailAlways ( ) ;
78+
79+ // Act.
7580 sut . Delete . Execute ( existingTask ) ;
7681
82+ // Assert.
7783 messageNotifierMock . Verify ( x => x . Notify (
7884 "Task deletion has failed due to " +
7985 "an internal error. The Task won't be deleted. " +
8086 "Please, try again later." ) ) ;
87+ sut . Tasks . Should ( ) . Contain ( existingTask ) ;
8188 }
8289
8390 private static TaskListViewModel TaskListViewModel (
Original file line number Diff line number Diff line change @@ -36,13 +36,13 @@ public TaskListViewModel(
3636
3737 Delete = new AsyncRelayCommand < Task > ( async taskToRemove =>
3838 {
39- Tasks . Remove ( taskToRemove ! ) ;
40-
4139 foreach ( var repository in this . taskRepositories )
4240 {
43- var result = await repository . Delete ( taskToRemove ! ) ;
41+ var deletion = await repository . Delete ( taskToRemove ! ) ;
4442
45- if ( ! result . Succeeded )
43+ if ( deletion . Succeeded )
44+ Tasks . Remove ( taskToRemove ! ) ;
45+ else
4646 messageNotifier . Notify (
4747 "Task deletion has failed due to " +
4848 "an internal error. The Task won't be deleted. " +
You can’t perform that action at this time.
0 commit comments