Ejemplo n.º 1
0
        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>();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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>();
        }
Ejemplo n.º 4
0
        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>();
        }
Ejemplo n.º 7
0
        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>();
        }
Ejemplo n.º 8
0
 protected WithSubjectAndFakes()
 {
     specificationController = new SpecificationController <TSubject, TFakeEngine>();
     ContextFactory.ChangeAllowedNumberOfBecauseBlocksTo(2);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Creates a new instance of the <see cref="WithFakes{TSubject, TFakeEngine}"/> class.
 /// </summary>
 protected WithFakes()
 {
     _specificationController = new SpecificationController <TSubject, TFakeEngine>();
 }