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); }
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]); }
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]); }
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]); }
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]); }