Exemplo n.º 1
0
 public IEnumerable<string> EvaluateCheckin(IWorkspace workspace, IPendingChange[] pendingChanges, string comment, IEnumerable<IWorkItemCheckinInfo> workItemInfo)
 {
     var result = workspace.EvaluateCheckin(TfsCheckinEvaluationOptions.All, pendingChanges,
                                            pendingChanges, comment, null,
                                            workItemInfo);
     return BuildMessages(result);
 }
Exemplo n.º 2
0
 public CheckinPolicyEvaluationResult EvaluateCheckin(IWorkspace workspace, IPendingChange[] pendingChanges, string comment, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemInfo)
 {
     var result = workspace.EvaluateCheckin(TfsCheckinEvaluationOptions.All, pendingChanges,
                                            pendingChanges, comment, null, checkinNote,
                                            workItemInfo);
     return new CheckinPolicyEvaluationResult(result);
 }
Exemplo n.º 3
0
        public void Policy_failed_and_Force_without_an_OverrideReason()
        {
            var logger = new StringWriter();

            Trace.Listeners.Add(new TextWriterTraceListener(logger));
            IWorkspace       workspace      = MockRepository.GenerateStub <IWorkspace>();
            string           localDirectory = string.Empty;
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub <TfsChangesetInfo>();
            IGitTfsRemote    remote         = MockRepository.GenerateStub <IGitTfsRemote>();

            remote.Repository = MockRepository.GenerateStub <IGitRepository>();
            CheckinOptions         checkinOptions  = new CheckinOptions();
            ITfsHelper             tfsHelper       = MockRepository.GenerateStub <ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub <IPendingChange>();

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                .WithPoilicyFailure("No work items associated.");

            checkinOptions.Force = true;

            workspace.Stub(w => w.EvaluateCheckin(
                               Arg <TfsCheckinEvaluationOptions> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <ICheckinNote> .Is.Anything,
                               Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything))
            .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                 Arg <IPendingChange[]> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <ICheckinNote> .Is.Anything,
                                 Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything,
                                 Arg <TfsPolicyOverrideInfo> .Is.Anything,
                                 Arg <bool> .Is.Anything))
            .Return(0);

            var ex = Assert.Throws <GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("A reason must be supplied (-f REASON) to override the policy violations.", ex.Message);
            Assert.Contains("[ERROR] Policy: No work items associated.", logger.ToString());
        }
Exemplo n.º 4
0
 public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemChanges,
                    TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
 {
     return _workspace.CheckIn(
         _bridge.Unwrap<PendingChange>(changes),
         comment,
         _bridge.Unwrap<CheckinNote>(checkinNote),
         _bridge.Unwrap<WorkItemCheckinInfo>(workItemChanges),
         ToTfs(policyOverrideInfo));
 }
Exemplo n.º 5
0
        public int Checkin(IPendingChange[] changes, string comment, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemChanges,
                           TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
        {
            var checkinParameters = new WorkspaceCheckInParameters(_bridge.Unwrap<PendingChange>(changes), comment)
            {
                CheckinNotes = _bridge.Unwrap<CheckinNote>(checkinNote),
                AssociatedWorkItems = _bridge.Unwrap<WorkItemCheckinInfo>(workItemChanges),
                PolicyOverride = ToTfs(policyOverrideInfo),
                OverrideGatedCheckIn = overrideGatedCheckIn
            };

            return _workspace.CheckIn(checkinParameters);
        }
Exemplo n.º 6
0
        public void Policy_failed_and_Force_with_an_OverrideReason()
        {
            IWorkspace       workspace      = MockRepository.GenerateStub <IWorkspace>();
            string           localDirectory = string.Empty;
            TextWriter       writer         = new StringWriter();
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub <TfsChangesetInfo>();
            IGitTfsRemote    remote         = MockRepository.GenerateStub <IGitTfsRemote>();

            remote.Repository = MockRepository.GenerateStub <IGitRepository>();
            CheckinOptions         checkinOptions  = new CheckinOptions();
            ITfsHelper             tfsHelper       = MockRepository.GenerateStub <ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, writer, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub <IPendingChange>();

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                .WithPoilicyFailure("No work items associated.");

            checkinOptions.Force          = true;
            checkinOptions.OverrideReason = "no work items";

            workspace.Stub(w => w.EvaluateCheckin(
                               Arg <TfsCheckinEvaluationOptions> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <ICheckinNote> .Is.Anything,
                               Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything))
            .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                 Arg <IPendingChange[]> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <ICheckinNote> .Is.Anything,
                                 Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything,
                                 Arg <TfsPolicyOverrideInfo> .Is.Anything,
                                 Arg <bool> .Is.Anything))
            .Return(1);

            var result = tfsWorkspace.Checkin(checkinOptions);

            Assert.Contains("[OVERRIDDEN] Policy: No work items associated.", writer.ToString());
        }
Exemplo n.º 7
0
        public void Checkin_failed()
        {
            IWorkspace       workspace      = MockRepository.GenerateStub <IWorkspace>();
            string           localDirectory = string.Empty;
            TextWriter       writer         = new StringWriter();
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub <TfsChangesetInfo>();
            IGitTfsRemote    remote         = MockRepository.GenerateStub <IGitTfsRemote>();

            remote.Repository = MockRepository.GenerateStub <IGitRepository>();
            CheckinOptions         checkinOptions  = new CheckinOptions();
            ITfsHelper             tfsHelper       = MockRepository.GenerateStub <ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, writer, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub <IPendingChange>();

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult();

            workspace.Stub(w => w.EvaluateCheckin(
                               Arg <TfsCheckinEvaluationOptions> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <IPendingChange[]> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <string> .Is.Anything,
                               Arg <ICheckinNote> .Is.Anything,
                               Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything))
            .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                 Arg <IPendingChange[]> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <string> .Is.Anything,
                                 Arg <ICheckinNote> .Is.Anything,
                                 Arg <IEnumerable <IWorkItemCheckinInfo> > .Is.Anything,
                                 Arg <TfsPolicyOverrideInfo> .Is.Anything,
                                 Arg <bool> .Is.Anything))
            .Return(0);

            var ex = Assert.Throws <GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("Checkin failed!", ex.Message);
        }
Exemplo n.º 8
0
        public void Checkin_failed()
        {
            IWorkspace workspace = MockRepository.GenerateStub<IWorkspace>();
            string localDirectory = string.Empty;
            TextWriter writer = new StringWriter();
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub<TfsChangesetInfo>();
            IGitTfsRemote remote = MockRepository.GenerateStub<IGitTfsRemote>();
            remote.Repository = MockRepository.GenerateStub<IGitRepository>();
            CheckinOptions checkinOptions = new CheckinOptions();
            ITfsHelper tfsHelper = MockRepository.GenerateStub<ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, writer, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub<IPendingChange>();
            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult();

            workspace.Stub(w => w.EvaluateCheckin(
                                    Arg<TfsCheckinEvaluationOptions>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything))
                    .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything,
                                    Arg<TfsPolicyOverrideInfo>.Is.Anything,
                                    Arg<bool>.Is.Anything))
                      .Return(0);

            var ex = Assert.Throws<GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("Checkin failed!", ex.Message);
        }
Exemplo n.º 9
0
        public void Policy_failed_and_Force_without_an_OverrideReason()
        {
            var logger = new StringWriter();

            Trace.Listeners.Add(new TextWriterTraceListener(logger));

            IPendingChange pendingChange = new Mock <IPendingChange>().Object;

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Setup(w => w.GetPendingChanges()).Returns(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                .WithPoilicyFailure("No work items associated.");

            checkinOptions.Force = true;

            workspace.Setup(w => w.EvaluateCheckin(
                                It.IsAny <TfsCheckinEvaluationOptions>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >()))
            .Returns(checkinEvaluationResult);

            workspace.Setup(w => w.Checkin(
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >(),
                                It.IsAny <TfsPolicyOverrideInfo>(),
                                It.IsAny <bool>()))
            .Returns(0);

            var ex = Assert.Throws <GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("A reason must be supplied (-f REASON) to override the policy violations.", ex.Message);
            Assert.Contains("[ERROR] Policy: No work items associated.", logger.ToString());
        }
Exemplo n.º 10
0
        public void Policy_failed_and_Force_with_an_OverrideReason()
        {
            var logger = new StringWriter();

            Trace.Listeners.Add(new TextWriterTraceListener(logger));

            IPendingChange pendingChange = new Mock <IPendingChange>().Object;

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Setup(w => w.GetPendingChanges()).Returns(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                .WithPoilicyFailure("No work items associated.");

            checkinOptions.Force          = true;
            checkinOptions.OverrideReason = "no work items";

            workspace.Setup(w => w.EvaluateCheckin(
                                It.IsAny <TfsCheckinEvaluationOptions>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >()))
            .Returns(checkinEvaluationResult);

            workspace.Setup(w => w.Checkin(
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >(),
                                It.IsAny <TfsPolicyOverrideInfo>(),
                                It.IsAny <bool>())).Returns(1);

            var result = tfsWorkspace.Checkin(checkinOptions);

            Assert.Contains("[OVERRIDDEN] Policy: No work items associated.", logger.ToString());
        }
Exemplo n.º 11
0
        public void Checkin_failed()
        {
            IPendingChange pendingChange = new Mock <IPendingChange>().Object;

            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Setup(w => w.GetPendingChanges()).Returns(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult();

            workspace.Setup(w => w.EvaluateCheckin(
                                It.IsAny <TfsCheckinEvaluationOptions>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >()))
            .Returns(checkinEvaluationResult);

            workspace.Setup(w => w.Checkin(
                                It.IsAny <IPendingChange[]>(),
                                It.IsAny <string>(),
                                It.IsAny <string>(),
                                It.IsAny <ICheckinNote>(),
                                It.IsAny <IEnumerable <IWorkItemCheckinInfo> >(),
                                It.IsAny <TfsPolicyOverrideInfo>(),
                                It.IsAny <bool>()))
            .Returns(0);

            var ex = Assert.Throws <GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("Checkin failed!", ex.Message);
        }
Exemplo n.º 12
0
        public void Policy_failed()
        {
            var logger = new StringWriter();
            Trace.Listeners.Add(new TextWriterTraceListener(logger));
            IWorkspace workspace = MockRepository.GenerateStub<IWorkspace>();
            string localDirectory = string.Empty;
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub<TfsChangesetInfo>();
            IGitTfsRemote remote = MockRepository.GenerateStub<IGitTfsRemote>();
            remote.Repository = MockRepository.GenerateStub<IGitRepository>();
            CheckinOptions checkinOptions = new CheckinOptions();
            ITfsHelper tfsHelper = MockRepository.GenerateStub<ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub<IPendingChange>();
            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                        .WithPoilicyFailure("No work items associated.");

            workspace.Stub(w => w.EvaluateCheckin(
                                    Arg<TfsCheckinEvaluationOptions>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything))
                    .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything,
                                    Arg<TfsPolicyOverrideInfo>.Is.Anything,
                                    Arg<bool>.Is.Anything))
                      .Return(0);

            var ex = Assert.Throws<GitTfsException>(() =>
            {
                var result = tfsWorkspace.Checkin(checkinOptions);
            });

            Assert.Equal("No changes checked in.", ex.Message);
            Assert.Contains("[ERROR] Policy: No work items associated.", logger.ToString());
        }
Exemplo n.º 13
0
 public ICheckinEvaluationResult EvaluateCheckin(TfsCheckinEvaluationOptions options, IPendingChange[] allChanges, IPendingChange[] changes, string comment, string authors, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemChanges)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 14
0
 public PendingChange Unwrap(IPendingChange pendingChange)
 {
     return WrapperFor<PendingChange>.Unwrap(pendingChange);
 }
Exemplo n.º 15
0
 public long ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable<IWorkItemCheckedInfo> checkedInfos, string checkinComment)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 16
0
 public int Checkin(IPendingChange[] changes, string comment, string author, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemChanges, TfsPolicyOverrideInfo policyOverrideInfo, bool overrideGatedCheckIn)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 17
0
        public void Policy_failed_and_Force_with_an_OverrideReason()
        {
            IWorkspace workspace = MockRepository.GenerateStub<IWorkspace>();
            string localDirectory = string.Empty;
            TextWriter writer = new StringWriter();
            TfsChangesetInfo contextVersion = MockRepository.GenerateStub<TfsChangesetInfo>();
            IGitTfsRemote remote = MockRepository.GenerateStub<IGitTfsRemote>();
            CheckinOptions checkinOptions = new CheckinOptions();
            ITfsHelper tfsHelper = MockRepository.GenerateStub<ITfsHelper>();
            CheckinPolicyEvaluator policyEvaluator = new CheckinPolicyEvaluator();

            TfsWorkspace tfsWorkspace = new TfsWorkspace(workspace, localDirectory, writer, contextVersion, remote, checkinOptions, tfsHelper, policyEvaluator);

            IPendingChange pendingChange = MockRepository.GenerateStub<IPendingChange>();
            IPendingChange[] allPendingChanges = new IPendingChange[] { pendingChange };
            workspace.Stub(w => w.GetPendingChanges()).Return(allPendingChanges);

            ICheckinEvaluationResult checkinEvaluationResult =
                new StubbedCheckinEvaluationResult()
                        .WithPoilicyFailure("No work items associated.");

            checkinOptions.Force = true;
            checkinOptions.OverrideReason = "no work items";

            workspace.Stub(w => w.EvaluateCheckin(
                                    Arg<TfsCheckinEvaluationOptions>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything))
                    .Return(checkinEvaluationResult);

            workspace.Expect(w => w.Checkin(
                                    Arg<IPendingChange[]>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<string>.Is.Anything,
                                    Arg<ICheckinNote>.Is.Anything,
                                    Arg<IEnumerable<IWorkItemCheckinInfo>>.Is.Anything,
                                    Arg<TfsPolicyOverrideInfo>.Is.Anything,
                                    Arg<bool>.Is.Anything))
                      .Return(1);

            var result = tfsWorkspace.Checkin(checkinOptions);

            Assert.Contains("[OVERRIDDEN] Policy: No work items associated.", writer.ToString());
        }
Exemplo n.º 18
0
 public void Shelve(IShelveset shelveset, IPendingChange[] changes, TfsShelvingOptions options)
 {
     throw new NotImplementedException();
 }
 public override long ShowCheckinDialog(IWorkspace workspace, IPendingChange[] pendingChanges, IEnumerable<IWorkItemCheckedInfo> checkedInfos, string checkinComment)
 {
     return ShowCheckinDialog(_bridge.Unwrap<Workspace>(workspace),
                              pendingChanges.Select(p => _bridge.Unwrap<PendingChange>(p)).ToArray(),
                              checkedInfos.Select(c => _bridge.Unwrap<WorkItemCheckedInfo>(c)).ToArray(),
                              checkinComment);
 }