Skip to content

Commit 306bba2

Browse files
Copilotpascalberger
andcommitted
Add CodeClimate issue provider implementation
Co-authored-by: pascalberger <2190718+pascalberger@users.noreply.github.com>
1 parent da71a02 commit 306bba2

11 files changed

+1053
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<Description>Tests for the Cake.Issues.CodeClimate addin</Description>
4+
</PropertyGroup>
5+
6+
<ItemGroup>
7+
<ProjectReference Include="..\Cake.Issues.CodeClimate\Cake.Issues.CodeClimate.csproj" />
8+
</ItemGroup>
9+
</Project>
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
namespace Cake.Issues.CodeClimate.Tests;
2+
3+
public class CodeClimateIssuesAliasesTests
4+
{
5+
public sealed class TheCodeClimateIssuesProviderTypeNameProperty
6+
{
7+
[Fact]
8+
public void Should_Return_Correct_Value()
9+
{
10+
// Given
11+
var context = new FakeCakeContext();
12+
13+
// When
14+
var result = context.CodeClimateIssuesProviderTypeName();
15+
16+
// Then
17+
result.ShouldBe("Cake.Issues.CodeClimate.CodeClimateIssuesProvider");
18+
}
19+
}
20+
21+
public sealed class TheCodeClimateIssuesFromFilePathMethod
22+
{
23+
[Fact]
24+
public void Should_Throw_If_Context_Is_Null()
25+
{
26+
// Given / When
27+
var result = Record.Exception(() =>
28+
CodeClimateIssuesAliases.CodeClimateIssuesFromFilePath(
29+
null!,
30+
@"C:\build\log.json"));
31+
32+
// Then
33+
result.IsArgumentNullException("context");
34+
}
35+
36+
[Fact]
37+
public void Should_Throw_If_LogFilePath_Is_Null()
38+
{
39+
// Given
40+
var context = new FakeCakeContext();
41+
42+
// When
43+
var result = Record.Exception(() =>
44+
context.CodeClimateIssuesFromFilePath(null!));
45+
46+
// Then
47+
result.IsArgumentNullException("logFilePath");
48+
}
49+
50+
[Fact]
51+
public void Should_Return_Issue_Provider()
52+
{
53+
// Given
54+
var context = new FakeCakeContext();
55+
var filePath = @"C:\build\log.json";
56+
57+
// When
58+
var result = context.CodeClimateIssuesFromFilePath(filePath);
59+
60+
// Then
61+
result.ShouldBeOfType<CodeClimateIssuesProvider>();
62+
}
63+
}
64+
65+
public sealed class TheCodeClimateIssuesFromContentMethod
66+
{
67+
[Fact]
68+
public void Should_Throw_If_Context_Is_Null()
69+
{
70+
// Given / When
71+
var result = Record.Exception(() =>
72+
CodeClimateIssuesAliases.CodeClimateIssuesFromContent(
73+
null!,
74+
"content"));
75+
76+
// Then
77+
result.IsArgumentNullException("context");
78+
}
79+
80+
[Fact]
81+
public void Should_Throw_If_LogFileContent_Is_Null()
82+
{
83+
// Given
84+
var context = new FakeCakeContext();
85+
86+
// When
87+
var result = Record.Exception(() =>
88+
context.CodeClimateIssuesFromContent(null!));
89+
90+
// Then
91+
result.IsArgumentNullException("logFileContent");
92+
}
93+
94+
[Fact]
95+
public void Should_Throw_If_LogFileContent_Is_Empty()
96+
{
97+
// Given
98+
var context = new FakeCakeContext();
99+
100+
// When
101+
var result = Record.Exception(() =>
102+
context.CodeClimateIssuesFromContent(string.Empty));
103+
104+
// Then
105+
result.IsArgumentOutOfRangeException("logFileContent");
106+
}
107+
108+
[Fact]
109+
public void Should_Throw_If_LogFileContent_Is_WhiteSpace()
110+
{
111+
// Given
112+
var context = new FakeCakeContext();
113+
114+
// When
115+
var result = Record.Exception(() =>
116+
context.CodeClimateIssuesFromContent(" "));
117+
118+
// Then
119+
result.IsArgumentOutOfRangeException("logFileContent");
120+
}
121+
122+
[Fact]
123+
public void Should_Return_Issue_Provider()
124+
{
125+
// Given
126+
var context = new FakeCakeContext();
127+
var content = "[]";
128+
129+
// When
130+
var result = context.CodeClimateIssuesFromContent(content);
131+
132+
// Then
133+
result.ShouldBeOfType<CodeClimateIssuesProvider>();
134+
}
135+
}
136+
137+
public sealed class TheCodeClimateIssuesMethod
138+
{
139+
[Fact]
140+
public void Should_Throw_If_Context_Is_Null()
141+
{
142+
// Given / When
143+
var result = Record.Exception(() =>
144+
CodeClimateIssuesAliases.CodeClimateIssues(
145+
null!,
146+
new CodeClimateIssuesSettings(@"C:\build\log.json")));
147+
148+
// Then
149+
result.IsArgumentNullException("context");
150+
}
151+
152+
[Fact]
153+
public void Should_Throw_If_Settings_Are_Null()
154+
{
155+
// Given
156+
var context = new FakeCakeContext();
157+
158+
// When
159+
var result = Record.Exception(() =>
160+
context.CodeClimateIssues(null!));
161+
162+
// Then
163+
result.IsArgumentNullException("settings");
164+
}
165+
166+
[Fact]
167+
public void Should_Return_Issue_Provider()
168+
{
169+
// Given
170+
var context = new FakeCakeContext();
171+
var settings = new CodeClimateIssuesSettings(@"C:\build\log.json");
172+
173+
// When
174+
var result = context.CodeClimateIssues(settings);
175+
176+
// Then
177+
result.ShouldBeOfType<CodeClimateIssuesProvider>();
178+
}
179+
}
180+
}

0 commit comments

Comments
 (0)