Skip to content

Commit 463c82b

Browse files
authored
Merge pull request #101 from cloudbees-oss/worktree-support-dotnet-junit
feat(dotnet): add JUnit XML output, upgrade to .NET 8, and refactor to Calculator classes
2 parents 1c2abdc + efb2eed commit 463c82b

16 files changed

Lines changed: 154 additions & 67 deletions

.github/workflows/dotnet.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Setup .NET Core SDK
3131
uses: actions/setup-dotnet@v3
3232
with:
33-
dotnet-version: 7.0.100
33+
dotnet-version: 8.0.x
3434
- name: Install dependencies
3535
run: |
3636
python -m pip install --upgrade pip
@@ -42,7 +42,7 @@ jobs:
4242
- name: Start session
4343
run: 'launchable record session --build "$GITHUB_RUN_ID" > test_session.txt'
4444
- name: Run test
45-
run: dotnet test --logger:"nunit;LogFilePath=test-result.xml"
45+
run: dotnet test --logger:"nunit;LogFilePath=test-result.xml" --logger:"junit;LogFilePath=junit-result.xml"
4646
- name: Record test results
4747
run: launchable record test --session "$(cat test_session.txt)" dotnet test-result.xml
4848
if: always()

dotnet/AddCalculator.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class AddCalculator
4+
{
5+
public int Add(int a, int b) => a + b;
6+
}

dotnet/AddCalculatorTest.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class AddCalculatorTest
4+
{
5+
private readonly AddCalculator _calculator = new();
6+
7+
[Test]
8+
public void TestAdd()
9+
{
10+
Assert.That(_calculator.Add(2, 3), Is.EqualTo(5));
11+
Assert.That(_calculator.Add(-1, 1), Is.EqualTo(0));
12+
Assert.That(_calculator.Add(0, 0), Is.EqualTo(0));
13+
}
14+
15+
// Intentionally failing test to verify failure reporting in test reports
16+
[Test]
17+
public void TestAddFailing()
18+
{
19+
Assert.That(_calculator.Add(2, 3), Is.EqualTo(999));
20+
}
21+
}

dotnet/Calculator.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class Calculator
4+
{
5+
private readonly AddCalculator _add = new();
6+
private readonly SubtractCalculator _subtract = new();
7+
private readonly MultiplyCalculator _multiply = new();
8+
private readonly DivideCalculator _divide = new();
9+
private readonly PowerCalculator _power = new();
10+
11+
public int Add(int a, int b) => _add.Add(a, b);
12+
public int Subtract(int a, int b) => _subtract.Subtract(a, b);
13+
public int Multiply(int a, int b) => _multiply.Multiply(a, b);
14+
public double Divide(double a, double b) => _divide.Divide(a, b);
15+
public double Power(double base_, double exponent) => _power.Power(base_, exponent);
16+
}

dotnet/DivideCalculator.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class DivideCalculator
4+
{
5+
public double Divide(double a, double b)
6+
{
7+
if (b == 0)
8+
throw new ArgumentException("Cannot divide by zero");
9+
return a / b;
10+
}
11+
}

dotnet/DivideCalculatorTest.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class DivideCalculatorTest
4+
{
5+
private readonly DivideCalculator _calculator = new();
6+
7+
[Test]
8+
public void TestDivide()
9+
{
10+
Assert.That(_calculator.Divide(10, 2), Is.EqualTo(5.0));
11+
Assert.That(_calculator.Divide(9, 3), Is.EqualTo(3.0));
12+
Assert.That(_calculator.Divide(-10, 2), Is.EqualTo(-5.0));
13+
}
14+
15+
[Test]
16+
public void TestDivideByZero()
17+
{
18+
Assert.Throws<ArgumentException>(() => _calculator.Divide(10, 0));
19+
}
20+
21+
// Intentionally failing test to verify failure reporting in test reports
22+
[Test]
23+
public void TestDivideFailing()
24+
{
25+
Assert.That(_calculator.Divide(10, 2), Is.EqualTo(99.0));
26+
}
27+
}

dotnet/Example.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

dotnet/ExampleTest.cs

Lines changed: 0 additions & 37 deletions
This file was deleted.

dotnet/MultiplyCalculator.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class MultiplyCalculator
4+
{
5+
public int Multiply(int a, int b) => a * b;
6+
}

dotnet/MultiplyCalculatorTest.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace rocket_car_dotnet;
2+
3+
public class MultiplyCalculatorTest
4+
{
5+
private readonly MultiplyCalculator _calculator = new();
6+
7+
[Test]
8+
public void TestMultiply()
9+
{
10+
Assert.That(_calculator.Multiply(2, 3), Is.EqualTo(6));
11+
Assert.That(_calculator.Multiply(-2, 3), Is.EqualTo(-6));
12+
Assert.That(_calculator.Multiply(0, 100), Is.EqualTo(0));
13+
}
14+
}

0 commit comments

Comments
 (0)