public async Task OnResourceExecutionAsync_AuthenticatedContentDistributionRequestWithValidHashForValidatedSubscriptionWithSecret_CallsNext(string algorithm, string hash)
        {
            ResourceExecutingContext         resourceExecutingContext      = PrepareAuthenticatedContentDistributionExecutingContext(algorithm, hash);
            Mock <ResourceExecutionDelegate> resourceExecutionDelegateMock = new Mock <ResourceExecutionDelegate>();

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegateMock.Object);

            resourceExecutionDelegateMock.Verify(m => m(), Times.Once);
        }
        public async Task OnResourceExecutionAsync_AuthenticatedContentDistributionRequestWithInvalidHashForValidatedSubscriptionWithSecret_SetsBadRequestResult(string algorithm, string hash)
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareAuthenticatedContentDistributionExecutingContext(algorithm, hash);
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <BadRequestObjectResult>(resourceExecutingContext.Result);
        }
        public async Task OnResourceExecutionAsync_AuthenticatedContentDistributionRequestWithValidHashForValidatedSubscriptionWithSecret_SetsSubscriptionHttpContextItem(string algorithm, string hash)
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareAuthenticatedContentDistributionExecutingContext(algorithm, hash);
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <WebSubSubscription>(resourceExecutingContext.HttpContext.Items[HTTP_CONTEXT_ITEMS_SUBSCRIPTION_KEY]);
        }
        public async Task OnResourceExecutionAsync_ContentDistributionRequestForValidatedSubscriptionWithSecret_SetsBadRequestResult()
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareContentDistributionExecutingContext(requestServices: PrepareWebSubRequestServicesWithSecret());
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <BadRequestObjectResult>(resourceExecutingContext.Result);
        }
        public async Task OnResourceExecutionAsync_ContentDistributionRequestForValidatedSubscriptionWithoutSecret_CallsNext()
        {
            ResourceExecutingContext         resourceExecutingContext      = PrepareContentDistributionExecutingContext();
            Mock <ResourceExecutionDelegate> resourceExecutionDelegateMock = new Mock <ResourceExecutionDelegate>();

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegateMock.Object);

            resourceExecutionDelegateMock.Verify(m => m(), Times.Once);
        }
        public async Task OnResourceExecutionAsync_ContentDistributionRequestForSubscriptionStateDifferentThanSubscribeValidated_SetsNotFoundResult(WebSubSubscriptionState webSubSubscriptionState)
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareContentDistributionExecutingContext(requestServices: PrepareWebSubRequestServices(subscriptionState: webSubSubscriptionState));
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <NotFoundResult>(resourceExecutingContext.Result);
        }
        public async Task OnResourceExecutionAsync_IntentVerificationRequest_CallsNext()
        {
            ResourceExecutingContext         resourceExecutingContext      = PrepareWebSubExecutingContext(HttpMethods.Get);
            Mock <ResourceExecutionDelegate> resourceExecutionDelegateMock = new Mock <ResourceExecutionDelegate>();

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegateMock.Object);

            resourceExecutionDelegateMock.Verify(m => m(), Times.Once);
        }
        public async Task OnResourceExecutionAsync_IntentVerificationRequest_SetsSubscriptionHttpContextItem()
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareWebSubExecutingContext(HttpMethods.Get);
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <WebSubSubscription>(resourceExecutingContext.HttpContext.Items[HTTP_CONTEXT_ITEMS_SUBSCRIPTION_KEY]);
        }
        public async Task OnResourceExecutionAsync_WebSubRequestWithoutMatchingId_SetsNotFoundResult(string httpMethod)
        {
            ResourceExecutingContext  resourceExecutingContext  = PrepareWebSubExecutingContext(httpMethod, id: OTHER_WEBHOOK_ID);
            ResourceExecutionDelegate resourceExecutionDelegate = () => Task.FromResult <ResourceExecutedContext>(null);

            WebSubWebHookSecurityFilter webSubWebHookSecurityFilter = PrepareWebSubWebHookSecurityFilter();

            await webSubWebHookSecurityFilter.OnResourceExecutionAsync(resourceExecutingContext, resourceExecutionDelegate);

            Assert.IsType <NotFoundResult>(resourceExecutingContext.Result);
        }
Example #10
0
 /// <summary>
 /// Instantiates a new <see cref="WebSubMetadata"/> instance.
 /// </summary>
 /// <param name="securityFilter">The <see cref="WebSubWebHookSecurityFilter"/></param>
 /// <param name="intentVerificationFilter">The <see cref="WebSubWebHookIntentVerificationFilter"/></param>
 public WebSubMetadata(WebSubWebHookSecurityFilter securityFilter, WebSubWebHookIntentVerificationFilter intentVerificationFilter)
     : base(WebSubConstants.ReceiverName)
 {
     _securityFilter           = securityFilter;
     _intentVerificationFilter = intentVerificationFilter;
 }