示例#1
0
        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();
        }
示例#2
0
        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();
        }
示例#3
0
        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)));
        }
示例#4
0
        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();
        }