public async Task EditSpecificationStatus_WhenUserDoesNotHaveApproveSpecificationPermission_ThenReturn403() { //Arrange string specificationId = "5"; PublishStatusEditModel model = new PublishStatusEditModel(); PublishStatusResult publishStatusResult = new PublishStatusResult(); ValidatedApiResponse <PublishStatusResult> response = new ValidatedApiResponse <PublishStatusResult>(HttpStatusCode.OK, publishStatusResult); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); specsClient .UpdatePublishStatus(Arg.Is(specificationId), Arg.Is(model)) .Returns(response); IAuthorizationHelper authorizationHelper = Substitute.For <IAuthorizationHelper>(); authorizationHelper.DoesUserHavePermission(Arg.Any <ClaimsPrincipal>(), Arg.Is(specificationId), Arg.Is(SpecificationActionTypes.CanApproveSpecification)) .Returns(false); SpecificationController controller = CreateSpecificationController(specsClient, authorizationHelper); // Act IActionResult result = await controller.EditSpecificationStatus(specificationId, model); // Assert result.Should().BeOfType <ForbidResult>(); }
public async Task EditSpecificationStatus_GivenSuccessReturnedFromApi_ReturnsOK() { //Arrange string specificationId = "5"; PublishStatusEditModel model = new PublishStatusEditModel(); PublishStatusResult publishStatusResult = new PublishStatusResult(); ValidatedApiResponse <PublishStatusResult> response = new ValidatedApiResponse <PublishStatusResult>(HttpStatusCode.OK, publishStatusResult); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); specsClient .UpdatePublishStatus(Arg.Is(specificationId), Arg.Is(model)) .Returns(response); IAuthorizationHelper authorizationHelper = TestAuthHelper.CreateAuthorizationHelperSubstitute(specificationId, SpecificationActionTypes.CanApproveSpecification); SpecificationController controller = CreateSpecificationController(specsClient, authorizationHelper); // Act IActionResult result = await controller.EditSpecificationStatus(specificationId, model); // Assert result .Should() .BeOfType <OkObjectResult>() .Which .Value .Should() .Be(publishStatusResult); }
public void EditSpecificationStatus_GivenFailedStatusCode_ThrowsInvalidOperationException() { //Arrange string specificationId = "5"; PublishStatusEditModel model = new PublishStatusEditModel(); ValidatedApiResponse <PublishStatusResult> response = new ValidatedApiResponse <PublishStatusResult>(HttpStatusCode.BadRequest); ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); specsClient .UpdatePublishStatus(Arg.Is(specificationId), Arg.Is(model)) .Returns(response); IAuthorizationHelper authorizationHelper = TestAuthHelper.CreateAuthorizationHelperSubstitute(specificationId, SpecificationActionTypes.CanApproveSpecification); SpecificationController controller = CreateSpecificationController(specsClient, authorizationHelper); // Act Func <Task> test = async() => await controller.EditSpecificationStatus(specificationId, model); // Assert test .Should() .Throw <InvalidOperationException>(); }
public void Initialize() { _authorizationHelper = Substitute.For <IAuthorizationHelper>(); _specificationsApiClient = Substitute.For <ISpecificationsApiClient>(); _specificationController = new SpecificationController(_specificationsApiClient, _authorizationHelper); }
public void GetAllSpecifications_Returns_BadRequestObjectResult_WithInValidCall_MissingVariable() { var data = new SpecificationSearchRequestViewModel() { SearchText = null, FundingPeriods = null, FundingStreams = null, Status = null }; _mockSpecificationsApiClient.Setup(x => x.FindSpecifications(null)).ReturnsAsync(Builder <PagedResult <SpecificationSearchResultItem> > .CreateNew().Build); _sut = new SpecificationController(_mockSpecificationsApiClient.Object, _mockAuthorizationHelper.Object); var actual = _sut.GetAllSpecifications(data); actual.Result.Should().BeOfType <BadRequestResult>(); }
public void GetAllSpecifications_Returns_OkObjectResults_WithValidCall() { var data = Builder <SpecificationSearchRequestViewModel> .CreateNew().Build(); _mockSpecificationsApiClient.Setup(x => x.FindSpecifications(It.IsAny <SearchFilterRequest>())) .ReturnsAsync(Builder <PagedResult <SpecificationSearchResultItem> > .CreateNew() .With(x => x.Items = Builder <SpecificationSearchResultItem> .CreateListOfSize(10).Build()).Build()); _sut = new SpecificationController(_mockSpecificationsApiClient.Object, _mockAuthorizationHelper.Object); var actual = _sut.GetAllSpecifications(data); actual.Result.Should().BeOfType <OkObjectResult>(); }
public async Task SelectSpecificationForFunding_WhenUserDoesNotHaveChooseFundingPermission_ThenReturns403() { // Arrange string specificationId = "5"; ISpecsApiClient specsClient = Substitute.For <ISpecsApiClient>(); IAuthorizationHelper authorizationHelper = Substitute.For <IAuthorizationHelper>(); authorizationHelper.DoesUserHavePermission(Arg.Any <ClaimsPrincipal>(), Arg.Is(specificationId), Arg.Is(SpecificationActionTypes.CanChooseFunding)) .Returns(false); SpecificationController controller = CreateSpecificationController(specsClient, authorizationHelper); // Act IActionResult result = await controller.SelectSpecificationForFunding(specificationId); // Assert result.Should().BeOfType <ForbidResult>(); }
protected WithSubjectAndFakes() { specificationController = new SpecificationController <TSubject, TFakeEngine>(); ContextFactory.ChangeAllowedNumberOfBecauseBlocksTo(2); }
/// <summary> /// Creates a new instance of the <see cref="WithFakes{TSubject, TFakeEngine}"/> class. /// </summary> protected WithFakes() { _specificationController = new SpecificationController <TSubject, TFakeEngine>(); }