public async Task CanValidateYamlPipeline() { var response = await _client.PostAsync(YamlPipeline.Parse(_config.Project, "275"), new YamlPipeline.YamlPipelineRequest() ).ConfigureAwait(false); Assert.NotNull(response.FinalYaml); }
private Task <WorkItemQueryResult> QuerySingleBatchAsync(int id) { var fullWhereClause = $@"[{FieldNames.TeamProject}] = @Project AND [{FieldNames.Id}] > { id } {_extraWhereClause} ORDER BY [{FieldNames.Id}]"; var query = $"SELECT [{FieldNames.Id}] FROM WorkItems WHERE {fullWhereClause}"; return(_client.PostAsync(WorkItemTracking.QueryByWiql(_project, _batchSize), new QueryByWiql(query))); }
private void MockQueryResultsByOne(IEnumerable <WorkItemReference> workItemReferences) { var results = workItemReferences .Select(r => CreateWorkItemQueryResult(r)) .Append(CreateWorkItemQueryResult()) .ToImmutableList(); _client .PostAsync(Arg.Any <IVstsRequest <QueryByWiql, WorkItemQueryResult> >(), Arg.Any <QueryByWiql>()) .Returns(results.First(), results.Skip(1).ToArray()); }
public Task UpdateAsync(Response.ApplicationGroup identity, Response.PermissionsSetId permissionSet, Response.Permission permission) { if (identity == null) { throw new ArgumentNullException(nameof(identity)); } return(_client.PostAsync(Requests.Permissions.ManagePermissions(_projectId), new ManagePermissionsData(identity.TeamFoundationId, permissionSet.DescriptorIdentifier, permissionSet.DescriptorIdentityType, permission.PermissionToken, permission).Wrap())); }
public async Task QueryByWiql_ShouldReturnResults() { // Arrange // Act var result = await _client.PostAsync(WorkItemTracking.QueryByWiql(_config.Project, 1), new QueryByWiql("select [System.Id] from WorkItems")); // Assert result.ShouldNotBeNull(); result.WorkItems.ShouldNotBeEmpty(); result.WorkItems.First().Id.ShouldNotBe(default);
public async Task AddAndRemoveGroupMemberAsync() { var projectId = _client .Get(Requests.Project.Projects()) .Single(x => x.Name == "SOx-compliant-demo").Id; var groupId = (await _client .GetAsync(Requests.Security.Groups(projectId))) .Identities .Single(x => x.FriendlyDisplayName == "Project Administrators") .TeamFoundationId; await _client.PostAsync( Requests.Security.AddMember(_config.Project), new Requests.Security.AddMemberData( new [] { "ab84d5a2-4b8d-68df-9ad3-cc9c8884270c" }, new [] { groupId })); await _client.PostAsync( Requests.Security.EditMembership(_config.Project), new Requests.Security.RemoveMembersData(new[] { "ab84d5a2-4b8d-68df-9ad3-cc9c8884270c" }, groupId)); }
public async Task ReconcileAsync(string projectId, string itemId) { var policies = _policiesResolver.Resolve(projectId); var policy = Find(policies, itemId).SingleOrDefault(); if (policy != null) { await _client.PutAsync(Requests.Policies.Policy(projectId, policy.Id), UpdatePolicy(policy)) .ConfigureAwait(false); } else { await _client.PostAsync(Requests.Policies.Policy(projectId), InitializeMinimumNumberOfReviewersPolicy(itemId)) .ConfigureAwait(false); } }
private static async Task <JToken> SessionToken(IVstsRestClient client, string publisher, string extension) { var response = await client.PostAsync(new VstsRequest <object, JObject>( "_apis/WebPlatformAuth/SessionToken", new Dictionary { ["api-version"] = "3.2-preview.1" }), new { ExtensionName = extension, PublisherName = publisher, TokenType = 1 }).ConfigureAwait(false); return(response.SelectToken("token")); }
public async Task SetPermissionsAsync() { await _client.PostAsync(Requests.Permissions.ManagePermissions(_config.Project), new ManagePermissionsData( "2c12fa83-5bdb-4085-a635-c7cd00cdfba5", "S-1-9-1551374245-50807123-3856808002-2418352955-3620213171-1-1337613045-2794958661-2397635820-2543327080", "Microsoft.TeamFoundation.Identity", "vstfs:///Classification/TeamProject/53410703-e2e5-4238-9025-233bd7c811b3", new Response.Permission { PermissionId = 2, PermissionBit = 4, NamespaceId = "52d39943-cb85-4d7f-8fa8-c6baac873819", PermissionToken = "$PROJECT:vstfs:///Classification/TeamProject/53410703-e2e5-4238-9025-233bd7c811b3:" } ).Wrap()); }
public async Task GetSingle_ShouldReturnWorkItem() { // Arrange var queryResult = await _client.PostAsync(WorkItemTracking.QueryByWiql(_config.Project, 1), new QueryByWiql($"select [System.Id] from WorkItems")); var workItem = queryResult.WorkItems.First(); var fields = new[] { FieldNames.TeamProject }; // Act var result = await _client.GetAsync(WorkItemTracking.GetWorkItem(_config.Project, workItem.Id, fields, queryResult.AsOf)); // Assert result.ShouldNotBeNull(); result.Id.ShouldBe(workItem.Id); result.Fields.ShouldNotBeNull(); result.Fields.ShouldContainKey(FieldNames.TeamProject); result.Fields[FieldNames.TeamProject].ShouldNotBeNull(); }
public async Task CreateAndDeleteEndpoint() { var fixture = new Fixture(); var name = fixture.Create <string>().Substring(0, 10); var endpoint = await _vsts.PostAsync(Requests.ServiceEndpoint.Endpoint(_config.Project), new Response.ServiceEndpoint { Name = name, Type = "generic", Url = new Uri("https://localhost"), Authorization = new Response.UsernamePassword("", null) }); endpoint.Name.ShouldBe(name); endpoint.Type.ShouldBe("generic"); endpoint.Url.ToString().ShouldBe("https://localhost/"); await _vsts.DeleteAsync(Requests.ServiceEndpoint.Endpoint(_config.Project, endpoint.Id)); await Task.Delay(TimeSpan.FromSeconds(10)); var deletedEndpoint = await _vsts.GetAsync(Requests.ServiceEndpoint.Endpoint(_config.Project, endpoint.Id)); deletedEndpoint.ShouldBeNull(); }