コード例 #1
0
        private bool TryGetRepositoryInfo(IExecutionContext executionContext, out RepositoryInfo repoInfo)
        {
            // Return the matching repository resource and its source provider.
            Trace.Entering();
            var primaryRepo = RepositoryUtil.GetPrimaryRepository(executionContext.Repositories);
            var triggeringRepo = RepositoryUtil.GetTriggeringRepository(executionContext.Repositories);
            repoInfo = new RepositoryInfo
            {
                PrimaryRepository = primaryRepo,
                TriggeringRepository = triggeringRepo,
                SourceProvider = GetSourceProvider(executionContext, primaryRepo),
            };

            return repoInfo.SourceProvider != null;
        }
コード例 #2
0
        public void GetTriggeringRepository_should_return_correct_value_when_called()
        {
            using (TestHostContext hc = new TestHostContext(this))
            {
                Tracing trace = hc.GetTrace();

                var repo1 = new RepositoryResource
                {
                    Alias = "repo1",
                    Id    = "repo1",
                    Type  = "git",
                };

                var repo2 = new RepositoryResource
                {
                    Alias = "repo2",
                    Id    = "repo2",
                    Type  = "git",
                };

                var repoSelf = new RepositoryResource
                {
                    Alias = "self",
                    Id    = "repo3",
                    Type  = "git",
                };

                // No properties set
                Assert.Equal(null, RepositoryUtil.GetTriggeringRepository(null));
                Assert.Equal(repo1, RepositoryUtil.GetTriggeringRepository(new[] { repo1 }));
                Assert.Equal(repo2, RepositoryUtil.GetTriggeringRepository(new[] { repo2 }));
                Assert.Equal(repoSelf, RepositoryUtil.GetTriggeringRepository(new[] { repoSelf }));
                Assert.Equal(null, RepositoryUtil.GetTriggeringRepository(new[] { repo1, repo2 }));
                Assert.Equal(repoSelf, RepositoryUtil.GetTriggeringRepository(new[] { repoSelf, repo1, repo2 }));
                Assert.Equal(repoSelf, RepositoryUtil.GetTriggeringRepository(new[] { repo1, repoSelf, repo2 }));
                Assert.Equal(repoSelf, RepositoryUtil.GetTriggeringRepository(new[] { repo1, repo2, repoSelf }));

                // With IsPrimaryRepository set
                repo2.Properties.Set(RepositoryUtil.IsTriggeringRepository, Boolean.TrueString);
                Assert.Equal(repo2, RepositoryUtil.GetTriggeringRepository(new[] { repo1, repo2, repoSelf }));
                repo2.Properties.Set(RepositoryUtil.IsTriggeringRepository, Boolean.FalseString);
                Assert.Equal(repoSelf, RepositoryUtil.GetTriggeringRepository(new[] { repo1, repo2, repoSelf }));
            }
        }