public async Task RunFromHttp_ProjectNotFound_NotFoundResult() { var tokenizer = new Mock <ITokenizer>(); tokenizer .Setup(x => x.Principal(It.IsAny <string>())) .Returns(PrincipalWithClaims()); var request = new HttpRequestMessage(); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", ""); var mock = new Mock <IDurableOrchestrationClient>(); var client = new Mock <IVstsRestClient>(MockBehavior.Strict); client .Setup(x => x.GetAsync(It.IsAny <IVstsRequest <Response.Project> >())) .ReturnsAsync((Response.Project)null) .Verifiable(); var fixture = new Fixture(); fixture.Customize(new AutoMoqCustomization()); var function = new ProjectScanHttpStarter(tokenizer.Object, client.Object, fixture.Create <PoliciesResolver>()); var result = await function.RunAsync(request, "raboweb", "TAS", RuleScopes.GlobalPermissions, mock.Object); result.StatusCode.ShouldBe(HttpStatusCode.NotFound); client.Verify(); result.Dispose(); }
public async Task RunFromHttp_WithCredential_OkResult() { var fixture = new Fixture(); fixture.Customize(new AutoMoqCustomization()); var tokenizer = new Mock <ITokenizer>(); tokenizer .Setup(x => x.Principal(It.IsAny <string>())) .Returns(PrincipalWithClaims()); var request = new HttpRequestMessage(); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", ""); var mock = new Mock <IDurableOrchestrationClient>(); var client = new Mock <IVstsRestClient>(MockBehavior.Strict); client .Setup(x => x.GetAsync(It.IsAny <IVstsRequest <Response.Project> >())) .ReturnsAsync(fixture.Create <Response.Project>()) .Verifiable(); var function = new ProjectScanHttpStarter(tokenizer.Object, client.Object, fixture.Create <PoliciesResolver>()); var result = await function.RunAsync(request, "raboweb", "TAS", RuleScopes.GlobalPermissions, mock.Object); mock.Verify(x => x.WaitForCompletionOrCreateCheckStatusResponseAsync(request, It.IsAny <string>(), It.IsAny <TimeSpan>(), TimeSpan.FromSeconds(1))); client.Verify(); result?.Dispose(); }
public async Task ReleasePipelinesScopeTest() { var fixture = new Fixture(); fixture.Customize(new AutoMoqCustomization()); var project = fixture.Create <Response.Project>(); var tokenizer = new Mock <ITokenizer>(); tokenizer .Setup(x => x.Principal(It.IsAny <string>())) .Returns(PrincipalWithClaims()); var request = new HttpRequestMessage(); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", ""); var client = new Mock <IVstsRestClient>(MockBehavior.Strict); client .Setup(x => x.GetAsync(It.IsAny <IVstsRequest <Response.Project> >())) .ReturnsAsync(project) .Verifiable(); var mock = new Mock <IDurableOrchestrationClient>(); var function = new ProjectScanHttpStarter(tokenizer.Object, client.Object, fixture.Create <PoliciesResolver>()); await function.RunAsync(request, "raboweb", "TAS", RuleScopes.ReleasePipelines, mock.Object); mock.Verify(x => x.StartNewAsync <object>(nameof(ProjectScanOrchestrator), string.Empty, It.Is <(Response.Project, string, DateTime)>(t => t.Item1 == project && t.Item2 == RuleScopes.ReleasePipelines))); }
public async Task RunFromHttp_WithoutCredential_Unauthorized() { var tokenizer = new Mock <ITokenizer>(); tokenizer .Setup(x => x.Principal(It.IsAny <string>())) .Returns(new ClaimsPrincipal()); var request = new HttpRequestMessage(); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", ""); var client = new Mock <IVstsRestClient>(MockBehavior.Strict); var fixture = new Fixture(); fixture.Customize(new AutoMoqCustomization()); var function = new ProjectScanHttpStarter(tokenizer.Object, client.Object, fixture.Create <PoliciesResolver>()); var result = await function.RunAsync(request, "raboweb", "TAS", RuleScopes.GlobalPermissions, new Mock <IDurableOrchestrationClient>().Object); result.StatusCode.ShouldBe(HttpStatusCode.Unauthorized); result.Dispose(); }