@@ -51,42 +51,16 @@ public void EmbedUntrackedSourcesIsSet(bool? embedUntrackedSources, bool expecte
5151 }
5252
5353 [ Theory ]
54- [ InlineData ( "GITHUB_REF" , "refs/pull/1234/merge" , "pr1234" ) ]
55- [ InlineData ( "GITHUB_REF" , "refs/heads/my-branch" , "my-branch" ) ]
56- [ InlineData ( "GITHUB_REF" , "refs/tags/v1.2.3" , "v1.2.3" ) ]
57-
58- [ InlineData ( "BUILD_SOURCEBRANCH" , "refs/heads/my-branch" , "my-branch" ) ]
59- [ InlineData ( "BUILD_SOURCEBRANCH" , "refs/tags/v1.2.3" , "v1.2.3" ) ]
60-
61- [ InlineData ( "APPVEYOR_PULL_REQUEST_NUMBER" , "1234" , "pr1234" ) ]
62- [ InlineData ( "APPVEYOR_REPO_TAG_NAME" , "refs/tags/v1.2.3" , "refs/tags/v1.2.3" ) ]
63- [ InlineData ( "APPVEYOR_REPO_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
64-
65- [ InlineData ( "TEAMCITY_BUILD_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
66-
67- [ InlineData ( "TRAVIS_PULL_REQUEST" , "1234" , "pr1234" ) ]
68- [ InlineData ( "TRAVIS_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
69-
70- [ InlineData ( "CIRCLE_PR_NUMBER" , "1234" , "pr1234" ) ]
71- [ InlineData ( "CIRCLE_TAG" , "refs/heads/v1.2.3" , "refs/heads/v1.2.3" ) ]
72- [ InlineData ( "CIRCLE_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
73-
74- [ InlineData ( "CI_COMMIT_TAG" , "refs/tags/v1.2.3" , "refs/tags/v1.2.3" ) ]
75- [ InlineData ( "CI_MERGE_REQUEST_IID" , "1234" , "pr1234" ) ]
76- [ InlineData ( "CI_COMMIT_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
77-
78- [ InlineData ( "BUDDY_EXECUTION_PULL_REQUEST_NO" , "1234" , "pr1234" ) ]
79- [ InlineData ( "BUDDY_EXECUTION_TAG" , "refs/tags/v1.2.3" , "refs/tags/v1.2.3" ) ]
80- [ InlineData ( "BUDDY_EXECUTION_BRANCH" , "refs/heads/my-branch" , "refs/heads/my-branch" ) ]
81- public void RepositoryBranchIsSet ( string ci , string original , string expected )
54+ [ MemberData ( nameof ( RepositoryBranchData ) ) ]
55+ public void RepositoryBranchIsSet ( Dictionary < string , string ? > env , string expected )
8256 {
8357 using EnvironmentVariableSuppressor hostSuppressor = new ( "BUILD_SOURCEBRANCH" ) ; // Suppress our own CI provider variables (i.e. Azure DevOps)
84- using EnvironmentVariableSuppressor ciSuppressor = new ( ci ) ; // Suppress the mock CI provider (just in case)
58+ using IDisposable ciSuppressors = env . Select ( kvp => new EnvironmentVariableSuppressor ( kvp . Key ) ) . ToDisposable ( ) ; // Suppress the mock CI provider (just in case)
8559
8660 ProjectCreator project = ProjectCreator . Templates
8761 . ReproducibleBuildProject ( GetRandomFile ( ".csproj" ) )
8862 . PropertyGroup ( )
89- . Property ( ci , original ) ;
63+ . Properties ( env ) ;
9064
9165 // If RepositoryBranch is not set, it should be set from the CI provider property
9266 project . Project
@@ -99,4 +73,65 @@ public void RepositoryBranchIsSet(string ci, string original, string expected)
9973 . GetPropertyValue ( "RepositoryBranch" )
10074 . Should ( ) . Be ( "explicitly-set" , "because explicitly setting `RepositoryBranch` should always win." ) ;
10175 }
76+
77+ public static TheoryData < Dictionary < string , string ? > , string > RepositoryBranchData ( )
78+ {
79+ TheoryData < Dictionary < string , string ? > , string > data = new ( )
80+ {
81+ { new ( ) { [ "GITHUB_REF" ] = "refs/pull/1234/merge" } , "refs/pull/1234/merge" } ,
82+ { new ( ) { [ "GITHUB_REF" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
83+ { new ( ) { [ "GITHUB_REF" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
84+
85+ { new ( ) { [ "BUILD_SOURCEBRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
86+ { new ( ) { [ "BUILD_SOURCEBRANCH" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
87+
88+ { new ( ) { [ "APPVEYOR_PULL_REQUEST_NUMBER" ] = "1234" } , "pr1234" } ,
89+ { new ( ) { [ "APPVEYOR_REPO_TAG_NAME" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
90+ { new ( ) { [ "APPVEYOR_REPO_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
91+ { new ( ) { [ "APPVEYOR_PULL_REQUEST_NUMBER" ] = "1234" , [ "APPVEYOR_REPO_BRANCH" ] = "refs/heads/my-branch" } , "pr1234" } ,
92+ { new ( ) { [ "APPVEYOR_REPO_TAG_NAME" ] = "refs/tags/v1.2.3" , [ "APPVEYOR_REPO_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
93+ { new ( ) { [ "APPVEYOR_PULL_REQUEST_NUMBER" ] = "1234" , [ "APPVEYOR_REPO_TAG_NAME" ] = "refs/tags/v1.2.3" , [ "APPVEYOR_REPO_BRANCH" ] = "refs/heads/my-branch" } , "pr1234" } ,
94+
95+ { new ( ) { [ "TEAMCITY_BUILD_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
96+
97+ { new ( ) { [ "TRAVIS_PULL_REQUEST" ] = "1234" } , "pr1234" } ,
98+ { new ( ) { [ "TRAVIS_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
99+ { new ( ) { [ "TRAVIS_PULL_REQUEST" ] = "1234" , [ "TRAVIS_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
100+ { new ( ) { [ "TRAVIS_PULL_REQUEST" ] = "false" , [ "TRAVIS_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
101+
102+ { new ( ) { [ "CIRCLE_PR_NUMBER" ] = "1234" } , "pr1234" } ,
103+ { new ( ) { [ "CIRCLE_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
104+ { new ( ) { [ "CIRCLE_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
105+ { new ( ) { [ "CIRCLE_PR_NUMBER" ] = "1234" , [ "CIRCLE_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
106+ { new ( ) { [ "CIRCLE_PR_NUMBER" ] = "1234" , [ "CIRCLE_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
107+ { new ( ) { [ "CIRCLE_TAG" ] = "refs/tags/v1.2.3" , [ "CIRCLE_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
108+ { new ( ) { [ "CIRCLE_PR_NUMBER" ] = "1234" , [ "CIRCLE_TAG" ] = "refs/tags/v1.2.3" , [ "CIRCLE_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
109+
110+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
111+ { new ( ) { [ "CI_MERGE_REQUEST_IID" ] = "1234" } , "pr1234" } ,
112+ { new ( ) { [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" } , "pr5678" } ,
113+ { new ( ) { [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
114+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_MERGE_REQUEST_IID" ] = "1234" } , "refs/tags/v1.2.3" } ,
115+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" } , "refs/tags/v1.2.3" } ,
116+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
117+ { new ( ) { [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" } , "pr1234" } ,
118+ { new ( ) { [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
119+ { new ( ) { [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
120+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" } , "refs/tags/v1.2.3" } ,
121+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
122+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
123+ { new ( ) { [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
124+ { new ( ) { [ "CI_COMMIT_TAG" ] = "refs/tags/v1.2.3" , [ "CI_MERGE_REQUEST_IID" ] = "1234" , [ "CI_EXTERNAL_PULL_REQUEST_IID" ] = "5678" , [ "CI_COMMIT_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
125+
126+ { new ( ) { [ "BUDDY_EXECUTION_PULL_REQUEST_NO" ] = "1234" } , "pr1234" } ,
127+ { new ( ) { [ "BUDDY_EXECUTION_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
128+ { new ( ) { [ "BUDDY_EXECUTION_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
129+ { new ( ) { [ "BUDDY_EXECUTION_PULL_REQUEST_NO" ] = "1234" , [ "BUDDY_EXECUTION_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
130+ { new ( ) { [ "BUDDY_EXECUTION_PULL_REQUEST_NO" ] = "1234" , [ "BUDDY_EXECUTION_BRANCH" ] = "refs/heads/my-branch" } , "refs/heads/my-branch" } ,
131+ { new ( ) { [ "BUDDY_EXECUTION_TAG" ] = "refs/tags/v1.2.3" , [ "BUDDY_EXECUTION_BRANCH" ] = "refs/heads/my-branch" } , "refs/tags/v1.2.3" } ,
132+ { new ( ) { [ "BUDDY_EXECUTION_PULL_REQUEST_NO" ] = "1234" , [ "BUDDY_EXECUTION_BRANCH" ] = "refs/heads/my-branch" , [ "BUDDY_EXECUTION_TAG" ] = "refs/tags/v1.2.3" } , "refs/tags/v1.2.3" } ,
133+ } ;
134+
135+ return data ;
136+ }
102137}
0 commit comments