public async Task Given_OrganisationName_Not_Registered_When_Call_RegisterOrganisationAsync_ShouldReturns_OrganisationInstance_With_ScheMap_Property_Not_Null(string organisationName) { var requestOrganisation = new DataContracts.OrganisationRegistration { Name = organisationName }; var moqRepository = new Mock <IOrganisationRepository>(); moqRepository .Setup(o => o.ExistsByAsync(It.IsAny <Expression <Func <Organisation, bool> > >())) .ReturnsAsync(false) .Verifiable(); moqRepository .Setup(o => o.AddAsync(It.IsAny <Organisation>())) .ReturnsAsync(new Organisation { Name = organisationName }) .Verifiable(); var service = new Application.OrganisationService(moqRepository.Object); var newOrganisation = await service.RegisterAsync(requestOrganisation); moqRepository.VerifyAll(); Assert.NotNull(newOrganisation); Assert.Equal(organisationName, newOrganisation.Name); }
public async Task Given_A_Valid_OrganisationService_And_OrganisationName_And_OrganisationRequest_When_Call_UpdateOrganisationAsync_ShouldReturns_CreatedAtRouteResult(string organisationName) { var organisation = new DataContracts.OrganisationRegistration { Name = organisationName }; var moqService = new Mock <IOrganisationService>(); moqService .Setup(o => o.RegisterAsync(It.IsAny <DataContracts.OrganisationRegistration>())) .ReturnsAsync(organisation) .Verifiable(); var controller = new WebAPI.Controllers.OrganisationController(); var routeName = nameof(controller.GetOrganisationAsync); var result = await controller.RegisterOrganisationAsync(organisationName, organisation, moqService.Object); moqService.Verify(); Assert.IsType <CreatedAtRouteResult>(result); var createdObjectResult = (CreatedAtRouteResult)result; Assert.NotNull(createdObjectResult); Assert.NotNull(createdObjectResult.Value); Assert.Equal(routeName, createdObjectResult.RouteName); Assert.NotNull((DataContracts.Organisation)createdObjectResult.Value); Assert.Equal(organisation.Name, ((DataContracts.Organisation)createdObjectResult.Value).Name); }
public async Task Given_OrganisationName_Registered_When_Call_RegisterOrganisationAsync_ShouldReturns_NameAlreadyUsedException(string organisationName) { var requestOrganisation = new DataContracts.OrganisationRegistration { Name = organisationName }; var moqRepository = new Mock <IOrganisationRepository>(); moqRepository .Setup(o => o.ExistsByAsync(It.IsAny <Expression <Func <Organisation, bool> > >())) .ReturnsAsync(true) .Verifiable(); var service = new Application.OrganisationService(moqRepository.Object); moqRepository.Verify(o => o.AddAsync(It.IsAny <Organisation>()), Times.Never); await Assert.ThrowsAsync <NameAlreadyUsedException>(() => service.RegisterAsync(requestOrganisation)); }
public async Task Given_A_Invalid_OrganisationName_When_Call_RegisterOrganisationAsync_ShouldReturns_BadRequest(string organisationName, DataContracts.OrganisationRegistration organisation) { var controller = new WebAPI.Controllers.OrganisationController(); var result = await controller.RegisterOrganisationAsync(organisationName, organisation, null); Assert.IsType <BadRequestObjectResult>(result); var badRequestResult = (BadRequestObjectResult)result; Assert.NotNull(badRequestResult); Assert.NotNull(badRequestResult.Value); }