public void Arrange() { _mediator = new Mock <IMediator>(); _log = new Mock <ILog>(); _orchestrator = new AccountsOrchestrator(_mediator.Object, _log.Object, Mock.Of <IMapper>(), Mock.Of <IHashingService>()); var response = new GetEmployerAccountDetailByHashedIdResponse { Account = new AccountDetail { AccountAgreementTypes = new List <AgreementType>() { AgreementType.Levy, AgreementType.Combined } } }; _mediator .Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(response) .Verifiable("Get account was not called"); }
public async Task ThenResponseShouldHaveAccountAgreementTypeSetToNonLevy() { //Arrange var agreementType = AgreementType.NonLevyExpressionOfInterest; const string hashedAgreementId = "ABC123"; var response = new GetEmployerAccountDetailByHashedIdResponse { Account = new AccountDetail { AccountAgreementTypes = new List <AgreementType> { agreementType, agreementType } } }; _mediator .Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(response) .Verifiable("Get account was not called"); //Act var result = await _orchestrator.GetAccount(hashedAgreementId); //Assert Assert.AreEqual(agreementType.ToString(), result.AccountAgreementType.ToString()); }
public async Task ThenTheAccountIsReturned() { var hashedAccountId = "ABC123"; var accountsResponse = new GetEmployerAccountDetailByHashedIdResponse { Account = new Models.Account.AccountDetail() { AccountId = 123, HashedId = hashedAccountId, Name = "Test 1" } }; Mediator.Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(accountsResponse); var response = await Controller.GetAccount(hashedAccountId); Assert.IsNotNull(response); Assert.IsInstanceOf <OkNegotiatedContentResult <AccountDetail> >(response); var model = response as OkNegotiatedContentResult <AccountDetail>; model?.Content?.Should().NotBeNull(); model?.Content?.AccountId.Should().Be(123); model?.Content?.DasAccountName.Should().Be("Test 1"); model?.Content?.HashedAccountId.Should().Be(hashedAccountId); }
private static AccountDetail ConvertToAccountDetail(GetEmployerAccountDetailByHashedIdResponse accountResult) { return(new AccountDetail { AccountId = accountResult.Account.AccountId, HashedAccountId = accountResult.Account.HashedId, PublicHashedAccountId = accountResult.Account.PublicHashedId, DateRegistered = accountResult.Account.CreatedDate, OwnerEmail = accountResult.Account.OwnerEmail, DasAccountName = accountResult.Account.Name, LegalEntities = new ResourceList(accountResult.Account.LegalEntities.Select(x => new Resource { Id = x.ToString() })), PayeSchemes = new ResourceList(accountResult.Account.PayeSchemes.Select(x => new Resource { Id = x })), ApprenticeshipEmployerType = accountResult.Account.ApprenticeshipEmployerType.ToString(), AccountAgreementType = GetAgreementType(accountResult.Account.AccountAgreementTypes) }); }
public async Task ThenTheAccountIsReturnedAndTheUriIsCorrect() { var hashedAccountId = "ABC123"; var accountsResponse = new GetEmployerAccountDetailByHashedIdResponse { Account = new Models.Account.AccountDetail() { AccountId = 123, HashedId = hashedAccountId, Name = "Test 1", LegalEntities = new List <long> { 234, 123 } } }; Mediator.Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(accountsResponse); UrlHelper.Setup(x => x.Route("GetLegalEntity", It.Is <object>(o => o.IsEquivalentTo(new { hashedAccountId, legalEntityId = accountsResponse.Account.LegalEntities[0] })))).Returns($"/api/accounts/{hashedAccountId}/legalEntity/{accountsResponse.Account.LegalEntities[0]}"); UrlHelper.Setup(x => x.Route("GetLegalEntity", It.Is <object>(o => o.IsEquivalentTo(new { hashedAccountId, legalEntityId = accountsResponse.Account.LegalEntities[1] })))).Returns($"/api/accounts/{hashedAccountId}/legalEntity/{accountsResponse.Account.LegalEntities[1]}"); var response = await Controller.GetAccount(hashedAccountId); Assert.IsNotNull(response); Assert.IsInstanceOf <OkNegotiatedContentResult <AccountDetail> >(response); var model = response as OkNegotiatedContentResult <AccountDetail>; model?.Content?.Should().NotBeNull(); model?.Content?.AccountId.Should().Be(123); model?.Content?.DasAccountName.Should().Be("Test 1"); model?.Content?.HashedAccountId.Should().Be(hashedAccountId); foreach (var legalEntity in accountsResponse.Account.LegalEntities) { var matchedScheme = model?.Content?.LegalEntities.Single(x => x.Id == legalEntity.ToString()); matchedScheme?.Href.Should().Be($"/api/accounts/{hashedAccountId}/legalEntity/{legalEntity}"); } }
public async Task ThenTheAccountIsReturnedAndTheUriIsCorrect() { var hashedAccountId = "ABC123"; var accountsResponse = new GetEmployerAccountDetailByHashedIdResponse { Account = new Models.Account.AccountDetail() { AccountId = 123, HashedId = hashedAccountId, Name = "Test 1", PayeSchemes = new List <string> { "123/4567", "345/6554" } } }; Mediator.Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(accountsResponse); UrlHelper.Setup(x => x.Route("GetPayeScheme", It.Is <object>(o => o.IsEquivalentTo(new { hashedAccountId, payeSchemeRef = accountsResponse.Account.PayeSchemes[0].Replace("/", "%2f") })))).Returns($"/api/accounts/{hashedAccountId}/payescheme/{accountsResponse.Account.PayeSchemes[0].Replace("/", "%2f")}"); UrlHelper.Setup(x => x.Route("GetPayeScheme", It.Is <object>(o => o.IsEquivalentTo(new { hashedAccountId, payeSchemeRef = accountsResponse.Account.PayeSchemes[1].Replace("/", "%2f") })))).Returns($"/api/accounts/{hashedAccountId}/payescheme/{accountsResponse.Account.PayeSchemes[1].Replace("/", "%2f")}"); var response = await Controller.GetAccount(hashedAccountId); Assert.IsNotNull(response); Assert.IsInstanceOf <OkNegotiatedContentResult <AccountDetail> >(response); var model = response as OkNegotiatedContentResult <AccountDetail>; model?.Content?.Should().NotBeNull(); model?.Content?.AccountId.Should().Be(123); model?.Content?.DasAccountName.Should().Be("Test 1"); model?.Content?.HashedAccountId.Should().Be(hashedAccountId); foreach (var payeScheme in accountsResponse.Account.PayeSchemes) { var matchedScheme = model?.Content?.PayeSchemes.Single(x => x.Id == payeScheme); matchedScheme?.Href.Should().Be($"/api/accounts/{hashedAccountId}/payescheme/{payeScheme.Replace("/", "%2f")}"); } }
public async Task ThenResponseShouldHaveAccountAgreementTypeSetToUnknown() { //Arrange var response = new GetEmployerAccountDetailByHashedIdResponse { Account = new AccountDetail { AccountAgreementTypes = new List <AgreementType>() } }; _mediator .Setup(x => x.SendAsync(It.IsAny <GetEmployerAccountDetailByHashedIdQuery>())) .ReturnsAsync(response) .Verifiable("Get account was not called"); //Act var result = await _orchestrator.GetAccount("AVC123"); //Assert Assert.AreEqual(AccountAgreementType.Unknown, result.AccountAgreementType); }