Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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()));
        }