public async Task JoinOrganisationHandler_UserAndOrganisationExist_ButResultIsUnsuccessful_ShouldVerifyAuthorization_AndShouldThrowInvalidOperationException() { A.CallTo(() => userContext.UserId) .Returns(Guid.NewGuid()); A.CallTo(() => dataAccess.DoesUserExist(A <Guid> ._)) .Returns(true); A.CallTo(() => dataAccess.DoesOrganisationExist(A <Guid> ._)) .Returns(true); A.CallTo(() => dataAccess.JoinOrganisation(A <OrganisationUser> ._)) .Returns(JoinOrganisationResult.Fail("Something went wrong")); await Assert.ThrowsAnyAsync <InvalidOperationException>( () => JoinOrganisationHandler().HandleAsync(new JoinOrganisation(Guid.NewGuid()))); A.CallTo(() => weeeAuthorization.EnsureCanAccessExternalArea()) .MustHaveHappened(); }
public async Task JoinOrganisationHandler_UserAndOrganisationExist_AndResultIsSuccessful_ShouldVerifyAuthorization_AndShouldReturnOrganisationId() { var organisationId = Guid.NewGuid(); A.CallTo(() => userContext.UserId) .Returns(Guid.NewGuid()); A.CallTo(() => dataAccess.DoesUserExist(A <Guid> ._)) .Returns(true); A.CallTo(() => dataAccess.DoesOrganisationExist(A <Guid> ._)) .Returns(true); A.CallTo(() => dataAccess.JoinOrganisation(A <OrganisationUser> ._)) .Returns(JoinOrganisationResult.Success()); var result = await JoinOrganisationHandler().HandleAsync(new JoinOrganisation(organisationId)); A.CallTo(() => weeeAuthorization.EnsureCanAccessExternalArea()) .MustHaveHappened(); Assert.Equal(organisationId, result); }