예제 #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(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()));
        }
예제 #3
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);
        }