public void ItShouldRestoreTheToDoStateFromASnapshot()
        {
            const string           label        = "My label";
            const string           description  = "My description";
            const ToDoCurrentState currentState = ToDoCurrentState.Waiting;
            var startedAt = DateTime.Now;
            var endedAt   = DateTime.Now;
            var snapshot  = new ToDoState
            {
                Label        = label,
                Description  = description,
                CurrentState = currentState,
                StartedAt    = startedAt,
                EndedAt      = endedAt
            };
            var history = new List <IEvent>();
            var todoId  = Guid.NewGuid();

            var toDo = new Domain.Write.ToDo.ToDo(todoId, history.Count + 1, snapshot, history);

            Assert.Equal(label, toDo.State.Label);
            Assert.Equal(description, toDo.State.Description);
            Assert.Equal(currentState, toDo.State.CurrentState);
            Assert.Equal(startedAt, toDo.State.StartedAt);
            Assert.Equal(endedAt, toDo.State.EndedAt);
        }
 protected override void OnInit()
 {
     state        = new ToDoState();
     stateManager = new ToDoState.Manager(state);
     stateManager.OnIsCompleteChanged += StateHasChanged;
     stateManager.OnToDoItemAdded     += StateHasChanged;
 }
Beispiel #3
0
 private static ToDoState ChangeToDosFilterReducer(ToDoState previousState, ChangeToDosFilterAction action)
 {
     return(new ToDoState
     {
         Filter = action.Filter,
         NextToDoId = previousState.NextToDoId,
         ToDos = previousState.ToDos
     });
 }
Beispiel #4
0
 private static ToDoState AddToDoReducer(ToDoState previousState, AddToDoAction action)
 {
     return(new ToDoState
     {
         Filter = previousState.Filter,
         NextToDoId = previousState.NextToDoId + 1,
         ToDos = previousState.ToDos.AddItem(new ToDo
         {
             Id = previousState.NextToDoId,
             Completed = false,
             Selected = false,
             Text = action.Text
         })
     });
 }
Beispiel #5
0
 /// <summary>
 /// Execute
 /// </summary>
 /// <param name="previousState"></param>
 /// <param name="action"></param>
 /// <returns></returns>
 public static ToDoState Execute(ToDoState previousState, object action)
 {
     if (previousState == null)
     {
         previousState = InitState;
     }
     if (action.GetType() == typeof(ChangeToDosFilterAction))
     {
         return(ChangeToDosFilterReducer(previousState, (ChangeToDosFilterAction)action));
     }
     if (action.GetType() == typeof(AddToDoAction))
     {
         return(AddToDoReducer(previousState, (AddToDoAction)action));
     }
     return(new ToDoState()
     {
         Filter = previousState.Filter,
         NextToDoId = previousState.NextToDoId,
         ToDos = ToDosReducer.Execute(previousState.ToDos, action)
     });
 }