Skip to content
This repository was archived by the owner on Apr 6, 2024. It is now read-only.

Commit d44c451

Browse files
authored
Merge pull request #67 from cake-contrib/feature/test-improvement
Add missing tests for IIssueExtension
2 parents 0861d74 + 5a6310d commit d44c451

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

src/Cake.Issues.Reporting.Generic.Tests/IIssueExtensionTests.cs

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,105 @@ public void Should_Return_Null_If_File_Is_Not_Set()
105105
result.ShouldBeNull();
106106
}
107107
}
108+
109+
public sealed class TheFileDirectoryExtension
110+
{
111+
[Fact]
112+
public void Should_Throw_If_Issue_Is_Null()
113+
{
114+
// Given
115+
IIssue issue = null;
116+
117+
// When
118+
var result = Record.Exception(() => issue.FileDirectory());
119+
120+
// Then
121+
result.IsArgumentNullException("issue");
122+
}
123+
124+
[Fact]
125+
public void Should_Return_Full_Path()
126+
{
127+
// Given
128+
var filePath = @"src\Cake.Issues.Reporting.Generic.Tests\Foo.cs";
129+
var issue =
130+
IssueBuilder
131+
.NewIssue("Message Foo", "ProviderType Foo", "ProviderName Foo")
132+
.InFile(filePath)
133+
.Create();
134+
135+
// When
136+
var result = issue.FileDirectory();
137+
138+
// Then
139+
result.ShouldBe(@"src/Cake.Issues.Reporting.Generic.Tests");
140+
}
141+
142+
[Fact]
143+
public void Should_Return_Null_If_File_Is_Not_Set()
144+
{
145+
// Given
146+
var issue =
147+
IssueBuilder
148+
.NewIssue("Message Foo", "ProviderType Foo", "ProviderName Foo")
149+
.Create();
150+
151+
// When
152+
var result = issue.FileDirectory();
153+
154+
// Then
155+
result.ShouldBeNull();
156+
}
157+
}
158+
159+
public sealed class TheFileNameExtension
160+
{
161+
[Fact]
162+
public void Should_Throw_If_Issue_Is_Null()
163+
{
164+
// Given
165+
IIssue issue = null;
166+
167+
// When
168+
var result = Record.Exception(() => issue.FileName());
169+
170+
// Then
171+
result.IsArgumentNullException("issue");
172+
}
173+
174+
[Fact]
175+
public void Should_Return_Full_Path()
176+
{
177+
// Given
178+
var filePath = @"src\Cake.Issues.Reporting.Generic.Tests\Foo.cs";
179+
var issue =
180+
IssueBuilder
181+
.NewIssue("Message Foo", "ProviderType Foo", "ProviderName Foo")
182+
.InFile(filePath)
183+
.Create();
184+
185+
// When
186+
var result = issue.FileName();
187+
188+
// Then
189+
result.ShouldBe("Foo.cs");
190+
}
191+
192+
[Fact]
193+
public void Should_Return_Null_If_File_Is_Not_Set()
194+
{
195+
// Given
196+
var issue =
197+
IssueBuilder
198+
.NewIssue("Message Foo", "ProviderType Foo", "ProviderName Foo")
199+
.Create();
200+
201+
// When
202+
var result = issue.FileName();
203+
204+
// Then
205+
result.ShouldBeNull();
206+
}
207+
}
108208
}
109209
}

src/Cake.Issues.Reporting.Generic/IIssueExtension.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public static string FilePath(this IIssue issue)
3838
/// <returns>Directory of the file affected by the issue.</returns>
3939
public static string FileDirectory(this IIssue issue)
4040
{
41+
issue.NotNull(nameof(issue));
42+
4143
return issue.AffectedFileRelativePath?.GetDirectory().FullPath;
4244
}
4345

@@ -48,6 +50,8 @@ public static string FileDirectory(this IIssue issue)
4850
/// <returns>Name of the file affected by the issue.</returns>
4951
public static string FileName(this IIssue issue)
5052
{
53+
issue.NotNull(nameof(issue));
54+
5155
return issue.AffectedFileRelativePath?.GetFilename().ToString();
5256
}
5357
}

0 commit comments

Comments
 (0)