public async Task HandleAsync_GivenOrganisationHasScheme_OrganisationSchemeIdShouldBeSet() { var organisation = GetOrganisationWithId(organisationId); var expectedReturnValue = new OrganisationData(); A.CallTo(() => map.Map(A <Organisation> ._)).Returns(expectedReturnValue); var scheme = A.Fake <Domain.Scheme.Scheme>(); A.CallTo(() => scheme.Id).Returns(Guid.NewGuid()); A.CallTo(() => scheme.OrganisationId).Returns(organisation.Id); var schemes = new List <Domain.Scheme.Scheme> { scheme }; A.CallTo(() => context.Schemes).Returns(dbHelper.GetAsyncEnabledDbSet(schemes)); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); result.SchemeId.Should().Be(scheme.Id); }
public async Task OrganisationByIdHandler_HappyPath_ReturnsOrganisationFromId() { var authorization = AuthorizationBuilder.CreateUserAllowedToAccessOrganisation(); var organisationId = Guid.NewGuid(); var context = A.Fake<WeeeContext>(); A.CallTo(() => context.Organisations).Returns(dbHelper.GetAsyncEnabledDbSet(new List<Organisation> { GetOrganisationWithId(organisationId) })); OrganisationData expectedReturnValue = new OrganisationData(); Organisation mappedOrganisation = null; var organisationMap = A.Fake<IMap<Organisation, OrganisationData>>(); A.CallTo(() => organisationMap.Map(A<Organisation>._)) .Invokes((Organisation o) => mappedOrganisation = o) .Returns(expectedReturnValue); var handler = new OrganisationByIdHandler(authorization, context, organisationMap); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); Assert.NotNull(mappedOrganisation); Assert.Equal(organisationId, mappedOrganisation.Id); Assert.Same(expectedReturnValue, result); }
public async Task OrganisationByIdHandler_NotOrganisationUser_ThrowsSecurityException() { var authorization = AuthorizationBuilder.CreateUserDeniedFromAccessingOrganisation(); var handler = new OrganisationByIdHandler(authorization, context, map); var message = new GetOrganisationInfo(Guid.NewGuid()); await Assert.ThrowsAsync <SecurityException>(async() => await handler.HandleAsync(message)); }
public async Task OrganisationByIdHandler_NotOrganisationUser_ThrowsSecurityException() { var authorization = AuthorizationBuilder.CreateUserDeniedFromAccessingOrganisation(); var handler = new OrganisationByIdHandler(authorization, A.Dummy<WeeeContext>(), A.Dummy<OrganisationMap>()); var message = new GetOrganisationInfo(Guid.NewGuid()); await Assert.ThrowsAsync<SecurityException>(async () => await handler.HandleAsync(message)); }
private async Task <string> FetchOrganisationNameFromApi(Guid organisationId) { using (var client = apiClient()) { var request = new GetOrganisationInfo(organisationId); var result = await client.SendAsync(accessToken, request); return(result.OrganisationName); } }
public async Task OrganisationByIdHandler_GivenMappedOrganisation_MappedOrganisationShouldBeReturned() { var message = new GetOrganisationInfo(organisationId); var expectedReturnValue = new OrganisationData(); A.CallTo(() => map.Map(A <Organisation> ._)).Returns(expectedReturnValue); var result = await handler.HandleAsync(message); result.Should().Be(expectedReturnValue); }
public async Task OrganisationByIdHandler_NoSuchOrganisation_ThrowsArgumentException() { var authorization = AuthorizationBuilder.CreateUserAllowedToAccessOrganisation(); A.CallTo(() => context.Organisations).Returns(dbHelper.GetAsyncEnabledDbSet(new List <Organisation>())); var handler = new OrganisationByIdHandler(authorization, context, map); var message = new GetOrganisationInfo(organisationId); var exception = await Assert.ThrowsAsync <ArgumentException>(async() => await handler.HandleAsync(message)); Assert.True(exception.Message.Contains(organisationId.ToString())); Assert.True(exception.Message.ToUpperInvariant().Contains("COULD NOT FIND")); Assert.True(exception.Message.ToUpperInvariant().Contains("ORGANISATION")); }
public async Task OrganisationByIdHandler_ReturnsFalseForCanEditOrganisation_WhenCurrentUserIsNotInternalAdmin() { var weeeAuthorization = new AuthorizationBuilder() .AllowInternalAreaAccess() .DenyRole(Roles.InternalAdmin) .Build(); var handler = new OrganisationByIdHandler(weeeAuthorization, context, map); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); result.CanEditOrganisation.Should().BeFalse(); }
public async Task HandleAsync_GivenOrganisationHasNoAes_OrganisationHasAesShouldBeFalse() { var organisation = GetOrganisationWithId(organisationId); var expectedReturnValue = new OrganisationData(); A.CallTo(() => map.Map(A <Organisation> ._)).Returns(expectedReturnValue); A.CallTo(() => context.Aatfs).Returns(dbHelper.GetAsyncEnabledDbSet(new List <Aatf>())); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); result.HasAes.Should().BeFalse(); }
public async Task OrganisationByIdHandler_NoSuchOrganisation_ThrowsArgumentException() { var authorization = AuthorizationBuilder.CreateUserAllowedToAccessOrganisation(); var organisationId = Guid.NewGuid(); var context = A.Fake<WeeeContext>(); A.CallTo(() => context.Organisations).Returns(dbHelper.GetAsyncEnabledDbSet(new List<Organisation>())); var handler = new OrganisationByIdHandler(authorization, context, A.Dummy<OrganisationMap>()); var message = new GetOrganisationInfo(organisationId); var exception = await Assert.ThrowsAsync<ArgumentException>(async () => await handler.HandleAsync(message)); Assert.True(exception.Message.Contains(organisationId.ToString())); Assert.True(exception.Message.ToUpperInvariant().Contains("COULD NOT FIND")); Assert.True(exception.Message.ToUpperInvariant().Contains("ORGANISATION")); }
public async Task OrganisationByIdHandler_HappyPath_ReturnsOrganisationFromId() { A.CallTo(() => context.Organisations).Returns(dbHelper.GetAsyncEnabledDbSet(new List <Organisation> { GetOrganisationWithId(organisationId) })); var expectedReturnValue = new OrganisationData(); A.CallTo(() => map.Map(A <Organisation> ._)).Returns(expectedReturnValue); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); Assert.NotNull(expectedReturnValue); Assert.Same(expectedReturnValue, result); }
public async Task HandleAsync_GivenOrganisationHasAatfs_OrganisationHasAatfsShouldBeTrue() { var organisation = GetOrganisationWithId(organisationId); var expectedReturnValue = new OrganisationData(); var aatf = A.Fake <Aatf>(); A.CallTo(() => aatf.FacilityType).Returns(FacilityType.Aatf); A.CallTo(() => aatf.Organisation).Returns(organisation); A.CallTo(() => map.Map(A <Organisation> ._)).Returns(expectedReturnValue); A.CallTo(() => context.Aatfs).Returns(dbHelper.GetAsyncEnabledDbSet(new List <Aatf>() { aatf })); var message = new GetOrganisationInfo(organisationId); var result = await handler.HandleAsync(message); result.HasAatfs.Should().BeTrue(); }