public WebHookEventValidatorTests()
 {
     _options.Value.Returns(new AutoGitWebHookOptions {
         WebHookSecret = Constants.ValidWebHookSecret
     });
     _sut = new WebHookEventValidator(_options);
 }
Esempio n. 2
0
        public async Task Invoke(HttpContext httpContext, IWebHookHandlerRegistry webHookHandlerRegistry,
                                 IWebHookEventFactory webHookEventFactory, WebHookEventValidator validator)
        {
            var webHookEvent = await webHookEventFactory.Create(httpContext);

            var result = await validator.ValidateAsync(webHookEvent);

            if (!result.IsValid)
            {
                httpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                return;
            }

            await webHookHandlerRegistry.Handle(webHookEvent);
        }
Esempio n. 3
0
        public async void Invoke_Should_Return_Return_Correct_Status_Code(string secret, int registryCalls,
                                                                          HttpStatusCode statusCode)
        {
            // Arrange
            var fakedWebHookEvent            = new WebHookEventFaker().Generate();
            var fakedHttpContext             = new HttpContextFaker().Generate();
            var mockedWebHookHandlerRegistry = Substitute.For <IWebHookHandlerRegistry>();
            var mockedWebHookEventFactory    = Substitute.For <IWebHookEventFactory>();
            var mockedWebHookEventValidator  = new WebHookEventValidator(Options.Create(new AutoGitWebHookOptions
            {
                WebHookSecret = secret
            }));

            mockedWebHookEventFactory.Create(fakedHttpContext).Returns(fakedWebHookEvent);

            // Act
            await _sut.Invoke(fakedHttpContext, mockedWebHookHandlerRegistry, mockedWebHookEventFactory,
                              mockedWebHookEventValidator);

            // Assert
            mockedWebHookEventFactory.Received(1);
            mockedWebHookHandlerRegistry.Received(registryCalls);
            fakedHttpContext.Response.StatusCode.Should().Be((int)statusCode);
        }