Ejemplo n.º 1
0
        public void Registering_a_valid_contract_should_succeed()
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .Save(this);

            var expectedResponse = new RegistrationAPIResponse(Guid.NewGuid());

            var ruleProcessor = GetRuleProcessor(_ruleProcessorUrl, expectedResponse);

            var response = ruleProcessor.RegisterContractItem(contract);

            Assert.AreEqual(RegistrationAPIState.Registered, response.State);
            Assert.AreEqual(expectedResponse.RegistrationReference, response.RegistrationReference);

            var trackingReferences = PreliminaryContractRepository.GetAll <ContractTrackingReference>().ToList();

            Assert.AreEqual(1, trackingReferences.Count);
            Assert.AreEqual(expectedResponse.RegistrationReference.ToString(), trackingReferences[0].ItemReference);
            Assert.AreEqual(ContractTrackingState.EvaluationPending, trackingReferences[0].State);
            Assert.AreNotEqual(0, trackingReferences[0].Id);
            Assert.AreNotEqual(default(DateTime), trackingReferences[0].CreatedAt);
            Assert.AreNotEqual(default(DateTime), trackingReferences[0].UpdatedAt);
        }
        private ContractTrackingReference CreateContractTrackingReference(long contractId, Guid itemReference,
                                                                          ContractTrackingState state   = ContractTrackingState.ActionsPending,
                                                                          ContractStatus contractStatus = ContractStatus.AvailableForApproval)
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .ContractStatus(contractStatus)
                           .Save(this);

            var trackingReference = new ContractTrackingReference()
            {
                ContractId = contract.Id, ItemReference = itemReference.ToString(), State = state
            };

            var roleIds           = Enumerable.Empty <long>();
            var changeSet         = base.contractTrackingReferenceRecordType.GetNewChangeSet() as ChangeSet <long, ContractTrackingReference>;
            var changeSetSettings = new ProcessChangeSetSettings(username: MrAdmin.Name);
            var itemRef           = 1L;

            changeSet.AddCreate(itemRef, trackingReference, roleIds, roleIds);

            var processResult = contractTrackingReferenceRecordType.ProcessChangeSet(PreliminaryContractDataService, changeSet, changeSetSettings);

            return(processResult.SuccessfullyCreatedItems[processResult.SuccessfullyCreated[itemRef]] as ContractTrackingReference);
        }
Ejemplo n.º 3
0
        public void Registering_a_contract_when_the_client_returns_null_should_fail()
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .Save(this);

            var ruleProcessor = GetRuleProcessor(_ruleProcessorUrl, null, false);

            var response = ruleProcessor.RegisterContractItem(contract);

            Assert.AreEqual(RegistrationAPIState.Failed, response.State);
            Assert.AreEqual("Failed to register contract item: Communication with the rules engine failed", response.Messages[0]);
        }
Ejemplo n.º 4
0
        public void Registering_a_contract_when_the_client_fails_should_fail()
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .Save(this);

            var ruleProcessor = GetRuleProcessor(_ruleProcessorUrl);

            var response = ruleProcessor.RegisterContractItem(contract);

            Assert.AreEqual(RegistrationAPIState.Failed, response.State);
            Assert.AreEqual($"Failed to register contract item: {_clientFailureMsg}", response.Messages[0]);
        }
Ejemplo n.º 5
0
        public void Registering_a_contract_when_the_system_is_not_registered_should_fail()
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .Save(this);

            var ruleProcessor = GetRuleProcessor(_ruleProcessorUrl, null, true, false);

            var response = ruleProcessor.RegisterContractItem(contract);

            Assert.AreEqual(RegistrationAPIState.Failed, response.State);
            Assert.AreEqual("Failed to register contract item: System is not registered with the rules engine", response.Messages[0]);
        }
Ejemplo n.º 6
0
        public void Registering_a_contract_that_is_on_hold_should_fail()
        {
            var contract = FluentContract
                           .Create()
                           .ApplyDefaults()
                           .OnHold(true)
                           .Save(this);

            var ruleProcessor = GetRuleProcessor(_ruleProcessorUrl, null, false);

            var response = ruleProcessor.RegisterContractItem(contract);

            Assert.AreEqual(RegistrationAPIState.Failed, response.State);
            Assert.AreEqual("Failed to register contract items: The file is flagged as 'Hold From Approval'", response.Messages[0]);
        }