Skip to content

Commit 3ebdf49

Browse files
Vadim Hatsuraarturcic
authored andcommitted
implement unit tests
1 parent 085d493 commit 3ebdf49

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

src/GitVersionCore.Tests/BuildServers/DroneTests.cs

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,106 @@ public void CanApplyToCurrentContext_ShouldBeFalse_WhenEnvironmentVariableIsNotS
4646
// Assert
4747
result.ShouldBeFalse();
4848
}
49+
50+
[Test]
51+
public void GetCurrentBranch_ShouldDroneBranch_InCaseOfPush()
52+
{
53+
// Arrange
54+
const string droneBranch = "droneBranch";
55+
56+
Environment.SetEnvironmentVariable("DRONE_PULL_REQUEST", "");
57+
Environment.SetEnvironmentVariable("DRONE_BRANCH", droneBranch);
58+
59+
var buildServer = new Drone();
60+
61+
// Act
62+
var result = buildServer.GetCurrentBranch(false);
63+
64+
// Assert
65+
result.ShouldBe(droneBranch);
66+
}
67+
68+
[Test]
69+
public void GetCurrentBranch_ShouldUseDroneSourceBranch_InCaseOfPullRequestAndNonEmptyDroneSourceBranch()
70+
{
71+
// Arrange
72+
const string droneSourceBranch = "droneSourceBranch";
73+
Environment.SetEnvironmentVariable("DRONE_PULL_REQUEST", "1");
74+
Environment.SetEnvironmentVariable("DRONE_SOURCE_BRANCH", droneSourceBranch);
75+
76+
var buildServer = new Drone();
77+
78+
// Act
79+
var result = buildServer.GetCurrentBranch(false);
80+
81+
// Assert
82+
result.ShouldBe(droneSourceBranch);
83+
}
84+
85+
[Test]
86+
public void GetCurrentBranch_ShouldUseSourceBranchFromCiCommitRefSpec_InCaseOfPullRequestAndEmptyDroneSourceBranch()
87+
{
88+
// Arrange
89+
const string droneSourceBranch = "droneSourceBranch";
90+
const string droneDestinationBranch = "droneDestinationBranch";
91+
92+
string ciCommitRefSpec = $"{droneSourceBranch}:{droneDestinationBranch}";
93+
94+
Environment.SetEnvironmentVariable("DRONE_PULL_REQUEST", "1");
95+
Environment.SetEnvironmentVariable("DRONE_SOURCE_BRANCH", "");
96+
Environment.SetEnvironmentVariable("CI_COMMIT_REFSPEC", ciCommitRefSpec);
97+
98+
var buildServer = new Drone();
99+
100+
// Act
101+
var result = buildServer.GetCurrentBranch(false);
102+
103+
// Assert
104+
result.ShouldBe(droneSourceBranch);
105+
}
106+
107+
[Test]
108+
public void GetCurrentBranch_ShouldUseDroneBranch_InCaseOfPullRequestAndEmptyDroneSourceBranchAndCiCommitRefSpec()
109+
{
110+
// Arrange
111+
const string droneBranch = "droneBranch";
112+
113+
Environment.SetEnvironmentVariable("DRONE_PULL_REQUEST", "1");
114+
Environment.SetEnvironmentVariable("DRONE_SOURCE_BRANCH", "");
115+
Environment.SetEnvironmentVariable("CI_COMMIT_REFSPEC", "");
116+
Environment.SetEnvironmentVariable("DRONE_BRANCH", droneBranch);
117+
118+
var buildServer = new Drone();
119+
120+
// Act
121+
var result = buildServer.GetCurrentBranch(false);
122+
123+
// Assert
124+
result.ShouldBe(droneBranch);
125+
}
126+
127+
[Test]
128+
public void GetCurrentBranch_ShouldUseDroneBranch_InCaseOfPullRequestAndEmptyDroneSourceBranchAndInvalidFormatOfCiCommitRefSpec()
129+
{
130+
// Arrange
131+
const string droneBranch = "droneBranch";
132+
const string droneSourceBranch = "droneSourceBranch";
133+
const string droneDestinationBranch = "droneDestinationBranch";
134+
135+
string ciCommitRefSpec = $"{droneSourceBranch};{droneDestinationBranch}";
136+
137+
Environment.SetEnvironmentVariable("DRONE_PULL_REQUEST", "1");
138+
Environment.SetEnvironmentVariable("DRONE_SOURCE_BRANCH", "");
139+
Environment.SetEnvironmentVariable("CI_COMMIT_REFSPEC", ciCommitRefSpec);
140+
Environment.SetEnvironmentVariable("DRONE_BRANCH", droneBranch);
141+
142+
var buildServer = new Drone();
143+
144+
// Act
145+
var result = buildServer.GetCurrentBranch(false);
146+
147+
// Assert
148+
result.ShouldBe(droneBranch);
149+
}
49150
}
50151
}

0 commit comments

Comments
 (0)