public void Check_AggregationValidations() { //given var agg = ActivityAggregationRoot.CreateFrom(Description.From(""), EntityId.GetNext(), Project.From(EntityId.From(1), Description.From(""))); //when var results = agg.ValidationResults; //then Assert.False(results.IsValid); Assert.True(results.Errors.Count > 0); }
protected override ExecutionResult ExecuteCommand(UpdateActivityCommand command) { var entityId = command.Id; var currentState = _session.Repository.Get(entityId); var agg = ActivityAggregationRoot.ReconstructFrom(currentState); var descr = command.Description; agg.UpdateTask(Activity.Patch.FromDescription(descr)); var task = agg.GetChange(); _session.Repository.Add(task); _session.SaveChanges(); Publisher.Publish(agg.GetEvents()); return(new ExecutionResult(true)); }
protected override ExecutionResult ExecuteCommand(AddActivityCommand command) { var descr = command.Description; var entityId = EntityId.GetNext(); var project = _taskSession.Repository.GetProject(command.ProjectId); var isSucceed = false; var agg = ActivityAggregationRoot.CreateFrom(descr, entityId, project); if (agg.ValidationResults.IsValid) { _taskSession.Repository.Add(agg.GetChange()); _taskSession.SaveChanges(); Publisher.Publish(agg.GetEvents()); isSucceed = true; } return(new ExecutionResult(isSucceed, agg.ValidationResults.Errors.ToImmutableList())); }
public void Check_TaskAggregation_UpdateTaskStatus_invalid() { //given var descriptionText = "Given Description"; var id = EntityId.From(1u); var newStatus = 6; var oldState = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var agg = ActivityAggregationRoot.ReconstructFrom(oldState); agg.ChangeTaskStatus(ActivityStatus.From(newStatus)); //then Assert.False(agg.ValidationResults.IsValid); }
public void Check_TaskAggregation_UpdateTaskStatus() { //given var descriptionText = "Given Description"; var id = EntityId.From(1u); var newStatus = 2; var oldState = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var agg = ActivityAggregationRoot.ReconstructFrom(oldState); agg.ChangeTaskStatus(ActivityStatus.From(newStatus)); var changes = agg.GetChange(); //then Assert.NotEqual(changes, oldState); }
public void Check_TaskAggregation_Create() { //given var descriptionText = "Given Description"; var id = EntityId.From(1u); var projectId = EntityId.From(1u); var project = Project.From(projectId, Description.From(descriptionText)); var task = Activity.From(Description.From(descriptionText), id, EntityId.From(1u), ActivityStatus.From(1)); //when var agg = ActivityAggregationRoot.CreateFrom(Description.From(descriptionText), id, project); var changes = agg.GetChange(); //then Assert.Equal(changes, task); }
protected override ExecutionResult ExecuteCommand(ChangeActivityStatusCommand command) { var currentState = _session.Repository.Get(command.Id); var agg = ActivityAggregationRoot.ReconstructFrom(currentState); agg.ChangeTaskStatus(command.NewStatus); var task = agg.GetChange(); var isSucceed = false; if (agg.ValidationResults.IsValid) { _session.Repository.Add(task); _session.SaveChanges(); Publisher.Publish(agg.GetEvents()); isSucceed = true; } return(new ExecutionResult(isSucceed, agg.ValidationResults.Errors.ToImmutableList())); }