Beispiel #1
0
        public void ResultModify_WhenCommandApplied_ValidModifiedLineItemAdded()
        {
            var result = new ReferendumResult();
            CreateReferendumResultCommand cmdCreate = DefaultCreateReferendumResultCommand();

            result.Apply(cmdCreate);
            AddReferendumLineItemsCommand cmdLineItem = DefaultAddReferendumLineItemsCommand(2, cmdCreate.ApplyToResult, result.PollingCentre, result.ResultSender);

            result.Apply(cmdLineItem);
            ConfirmReferendumResultsCommand cmdConfirm = DefaultConfirmPresidentalResultsCommand(3, cmdLineItem.ApplyToResult, result.PollingCentre, result.ResultSender);

            result.Apply(cmdConfirm);
            ModifyReferendumResultsCommand cmd = DefaultModifyReferendumResultsCommand(4, cmdConfirm.ApplyToResult, result.PollingCentre, result.ResultSender);

            //act
            result.Apply(cmd);
            //assert
            Assert.That(result.LineItems.Count(), Is.EqualTo(2));
            Assert.That(result.Id, Is.EqualTo(cmd.ApplyToResult.Id));
            Assert.That(result.Status, Is.EqualTo(ResultStatus.Modified));
            ReferendumResultLineItem lineItem = result.LineItems[1];

            Assert.That(lineItem.Candidate, Is.EqualTo(cmd.ResultDetail[0].Candidate));
            Assert.That(lineItem.ResultCount, Is.EqualTo(cmd.ResultDetail[0].Result));
        }
Beispiel #2
0
        public void ResultConfirm_WhenCommandApplied_ResultStatusConfirmed()
        {
            var result = new ReferendumResult();
            CreateReferendumResultCommand cmdCreate = DefaultCreateReferendumResultCommand();

            result.Apply(cmdCreate);
            AddReferendumLineItemsCommand cmdLineItem = DefaultAddReferendumLineItemsCommand(2, cmdCreate.ApplyToResult, result.PollingCentre, result.ResultSender);

            result.Apply(cmdLineItem);
            ConfirmReferendumResultsCommand cmd = DefaultConfirmPresidentalResultsCommand(3, cmdLineItem.ApplyToResult, result.PollingCentre, result.ResultSender);

            //act
            result.Apply(cmd);
            //assert
            Assert.That(result.Status, Is.EqualTo(ResultStatus.Confirmed));
        }
Beispiel #3
0
        public void ResultAddLineItem_WhenCommandApplied_ValidLineItemAdded()
        {
            var result = new ReferendumResult();
            CreateReferendumResultCommand cmdCreate = DefaultCreateReferendumResultCommand();

            result.Apply(cmdCreate);
            AddReferendumLineItemsCommand cmd = DefaultAddReferendumLineItemsCommand(2, cmdCreate.ApplyToResult, result.PollingCentre, result.ResultSender);

            //act
            result.Apply(cmd);
            //assert
            Assert.That(result.LineItems.Count(), Is.EqualTo(1));
            Assert.That(result.Id, Is.EqualTo(cmd.ApplyToResult.Id));
            Assert.That(result.Status, Is.EqualTo(ResultStatus.New));
            ReferendumResultLineItem lineItem = result.LineItems[0];

            Assert.That(lineItem.Candidate, Is.EqualTo(cmd.ResultDetail[0].Candidate));
            Assert.That(lineItem.ResultCount, Is.EqualTo(cmd.ResultDetail[0].Result));
        }
Beispiel #4
0
        public ReferendumResult AddReferendumResultLineItems(ReferendumResult result, ResultInfo originatingInfo,
                                                             List <ResultDetail> resultDetails)
        {
            CommandInfo commandInfo = new CommandInfo
            {
                CommandGeneratedByUser   = originatingInfo.CommandGeneratedByUser,
                OriginatingPollingCentre = originatingInfo.OriginatingPollingCentre,
            };
            var command = new AddReferendumLineItemsCommand
            {
                CommandId = Guid.NewGuid(),
                CommandGeneratedByUser   = commandInfo.CommandGeneratedByUser,
                OriginatingPollingCentre = commandInfo.OriginatingPollingCentre,
                ApplyToResult            = result.GetResultRef(),
                CommandExecutionOrder    = result.LastResultCommandExecutedOrder + 1,
                ResultDetail             = resultDetails,
            };

            result.Apply(command);

            return(result);
        }
Beispiel #5
0
        private AddReferendumLineItemsCommand DefaultAddReferendumLineItemsCommand(int executionOrder, ResultRef result, PollingCentreRef pollingCentre, UserRef user)
        {
            var fixture = new Fixture();
            AddReferendumLineItemsCommand cmd = fixture
                                                .Build <AddReferendumLineItemsCommand>()
                                                .With(n => n.ApplyToResult, result)
                                                .Create();

            cmd.CommandId     = Guid.NewGuid();
            cmd.ApplyToResult = result;
            CandidateRef candidate = new CandidateRef(Guid.NewGuid(), "Yes", CandidateType.PartyBacked);
            var          res       = new ResultDetail {
                Candidate = candidate, Result = 1000
            };
            var resList = new List <ResultDetail>();

            resList.Add(res);
            cmd.ResultDetail             = resList;
            cmd.OriginatingPollingCentre = pollingCentre;
            cmd.CommandGeneratedByUser   = user;
            cmd.CommandExecutionOrder    = executionOrder;
            return(cmd);
        }