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); }
/// <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; }