Beispiel #1
0
        public void GivenNoApprovalsAreWaitingIn(KeyValuePair <string, string> teamProject)
        {
            var service   = new VstsService();
            var approvals = service.GetApprovals(Config.Account, teamProject.Value, Config.Profile).Result;

            foreach (var approval in approvals)
            {
                service.ChangeApprovalStatus(Config.Account, teamProject.Value, Config.Profile, approval.Id, ApprovalStatus.Rejected, string.Empty).Wait();
            }
        }
        public async Task ChangeApprovalStatusTest()
        {
            var       account = "MyAccount";
            var       project = "MyProject";
            const int id      = 1234;
            var       comment = "My comment";
            var       status  = ApprovalStatus.Undefined;

            var profile = new VstsProfile
            {
                Id           = Guid.NewGuid(),
                Token        = this.token,
                EmailAddress = "*****@*****.**"
            };

            var service = new VstsService();

            await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await service.ChangeApprovalStatus(null, project, profile, id, status, comment));

            await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await service.ChangeApprovalStatus(account, null, profile, id, status, comment));

            await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await service.ChangeApprovalStatus(account, project, null, id, status, comment));

            using (ShimsContext.Create())
            {
                ReleaseApproval updatedApproval = null;

                InitializeConnectionShim(new VssHttpClientBase[]
                {
                    GetAccountHttpClient(new List <Account>
                    {
                        new Account(Guid.Empty)
                        {
                            AccountName = "myaccount",
                            AccountUri  = new Uri("https://myaccount.visualstudio.com")
                        }
                    }),
                    GetProfileHttpClient(new Profile()),
                    new ShimReleaseHttpClientBase(new ShimReleaseHttpClient2())
                    {
                        GetApprovalAsyncStringInt32NullableOfBooleanObjectCancellationToken = (p, i, includeHistory, userState, cancellationToken) => Task.Run(
                            () => new ReleaseApproval {
                            Id = i
                        },
                            cancellationToken),
                        UpdateReleaseApprovalAsyncReleaseApprovalStringInt32ObjectCancellationToken = (releaseApproval, p, i, userState, cancellationToken) => Task.Run(
                            delegate
                        {
                            Assert.AreEqual(project, p);
                            updatedApproval = releaseApproval;
                            return(updatedApproval);
                        },
                            cancellationToken)
                    }.Instance
                });

                await service.ChangeApprovalStatus(account, project, profile, 4, ApprovalStatus.Canceled, comment);

                Assert.IsNotNull(updatedApproval);
                Assert.AreEqual(4, updatedApproval.Id);
                Assert.AreEqual(ApprovalStatus.Canceled, updatedApproval.Status);
                Assert.AreEqual(comment, updatedApproval.Comments);
            }
        }