public void WhenInjectingOrganisationAndContactHappyPathForAnApplication(InjectionTestCase testCase) { List <ValidationErrorDetail> validationErrors = new List <ValidationErrorDetail>(); if (testCase.IsOrganisationStandardTaken) { validationErrors.Add(new ValidationErrorDetail { ErrorMessage = "standard taken" }); } else if (testCase.Command.StandardCode < 1) { validationErrors.Add(new ValidationErrorDetail { ErrorMessage = "standard invalid" }); } _mockApiClient.Setup(r => r.CreateOrganisationStandardValidate(It.IsAny <CreateEpaOrganisationStandardValidationRequest>())) .Returns(Task.FromResult(new ValidationResponse { Errors = validationErrors })); _mockApiClient.Setup(r => r.CreateEpaOrganisationStandard(It.IsAny <CreateEpaOrganisationStandardRequest>())) .Returns(Task.FromResult(testCase.ExpectedResponse.EpaoStandardId)); var actualResponse = _answerInjectionService.InjectApplyOrganisationStandardDetailsIntoRegister(testCase.Command).Result; if (actualResponse.WarningMessages.Count > 0) { actualResponse.WarningMessages = testCase.ExpectedResponse.WarningMessages; } Assert.AreEqual(JsonConvert.SerializeObject(testCase.ExpectedResponse), JsonConvert.SerializeObject(actualResponse)); if (actualResponse.WarningMessages.Count > 0) { _mockApiClient.Verify(r => r.CreateEpaOrganisationStandard(It.IsAny <CreateEpaOrganisationStandardRequest>()), Times.Never); } else { _mockApiClient.Verify(r => r.CreateEpaOrganisationStandard(It.IsAny <CreateEpaOrganisationStandardRequest>()), Times.Once); } }