Skip to content

Commit 6204bc2

Browse files
committed
tests: add MustBeFileExtension tests for remaining types
Signed-off-by: Kenny Pflug <kenny.pflug@live.de>
1 parent 92f9e3a commit 6204bc2

File tree

1 file changed

+176
-9
lines changed

1 file changed

+176
-9
lines changed

Code/Light.GuardClauses.Tests/StringAssertions/MustBeFileExtensionTests.cs

Lines changed: 176 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static class MustBeFileExtensionTests
1818
"....",
1919
".docx.",
2020
];
21-
21+
2222
public static readonly TheoryData<string> ValidFileExtensionsData =
2323
[
2424
".txt",
@@ -83,25 +83,25 @@ public static void CallerArgumentExpression()
8383

8484
[Theory]
8585
[MemberData(nameof(ValidFileExtensionsData))]
86-
public static void ValidFileExtensions_Span(string input)
86+
public static void ValidFileExtensions_ReadOnlySpan(string input)
8787
{
8888
var span = input.AsSpan();
89-
89+
9090
var result = span.MustBeFileExtension();
91-
91+
9292
result.Equals(span, StringComparison.Ordinal).Should().BeTrue();
9393
}
9494

9595
[Theory]
9696
[MemberData(nameof(InvalidFileExtensionsData))]
97-
public static void InvalidFileExtensions_Span(string invalidString)
97+
public static void InvalidFileExtensions_ReadOnlySpan(string invalidString)
9898
{
9999
var act = () =>
100100
{
101101
var span = new ReadOnlySpan<char>(invalidString?.ToCharArray() ?? []);
102102
span.MustBeFileExtension("parameterName");
103103
};
104-
104+
105105
act.Should().Throw<StringException>()
106106
.And.Message.Should().Contain(
107107
$"parameterName must be a valid file extension, but it actually is {invalidString}"
@@ -110,7 +110,7 @@ public static void InvalidFileExtensions_Span(string invalidString)
110110

111111
[Theory]
112112
[MemberData(nameof(InvalidFileExtensionsData))]
113-
public static void CustomExceptionInvalidFileExtensions_Span(string invalidString)
113+
public static void CustomExceptionInvalidFileExtensions_ReadOnlySpan(string invalidString)
114114
{
115115
var exception = new Exception();
116116

@@ -124,15 +124,182 @@ public static void CustomExceptionInvalidFileExtensions_Span(string invalidStrin
124124
}
125125

126126
[Fact]
127-
public static void CallerArgumentExpression_Span()
127+
public static void CallerArgumentExpression_ReadOnlySpan()
128128
{
129129
var act = () =>
130130
{
131131
var invalidSpan = "txt".AsSpan();
132132
invalidSpan.MustBeFileExtension();
133133
};
134-
134+
135+
act.Should().Throw<StringException>()
136+
.WithParameterName("invalidSpan");
137+
}
138+
139+
[Theory]
140+
[MemberData(nameof(ValidFileExtensionsData))]
141+
public static void ValidFileExtensions_Span(string input)
142+
{
143+
var span = input.AsSpan().ToArray().AsSpan();
144+
145+
var result = span.MustBeFileExtension();
146+
147+
result.ToString().Should().Be(input);
148+
}
149+
150+
[Theory]
151+
[MemberData(nameof(InvalidFileExtensionsData))]
152+
public static void InvalidFileExtensions_Span(string invalidString)
153+
{
154+
var act = () =>
155+
{
156+
var span = new Span<char>(invalidString?.ToCharArray() ?? []);
157+
span.MustBeFileExtension("parameterName");
158+
};
159+
160+
act.Should().Throw<StringException>()
161+
.And.Message.Should().Contain(
162+
$"parameterName must be a valid file extension, but it actually is {invalidString}"
163+
);
164+
}
165+
166+
[Theory]
167+
[MemberData(nameof(InvalidFileExtensionsData))]
168+
public static void CustomExceptionInvalidFileExtensions_Span(string invalidString)
169+
{
170+
var exception = new Exception();
171+
172+
var act = () =>
173+
{
174+
var span = new Span<char>(invalidString?.ToCharArray() ?? []);
175+
span.MustBeFileExtension(_ => exception);
176+
};
177+
178+
act.Should().Throw<Exception>().Which.Should().BeSameAs(exception);
179+
}
180+
181+
[Fact]
182+
public static void CallerArgumentExpression_Span()
183+
{
184+
var act = () =>
185+
{
186+
var charArray = "txt".ToCharArray();
187+
var invalidSpan = new Span<char>(charArray);
188+
invalidSpan.MustBeFileExtension();
189+
};
190+
135191
act.Should().Throw<StringException>()
136192
.WithParameterName("invalidSpan");
137193
}
194+
195+
[Theory]
196+
[MemberData(nameof(ValidFileExtensionsData))]
197+
public static void ValidFileExtensions_Memory(string input)
198+
{
199+
var memory = input.ToCharArray().AsMemory();
200+
201+
var result = memory.MustBeFileExtension();
202+
203+
result.ToString().Should().Be(input);
204+
}
205+
206+
[Theory]
207+
[MemberData(nameof(InvalidFileExtensionsData))]
208+
public static void InvalidFileExtensions_Memory(string invalidString)
209+
{
210+
var act = () =>
211+
{
212+
var memory = new Memory<char>(invalidString?.ToCharArray() ?? []);
213+
memory.MustBeFileExtension("parameterName");
214+
};
215+
216+
act.Should().Throw<StringException>()
217+
.And.Message.Should().Contain(
218+
$"parameterName must be a valid file extension, but it actually is {invalidString}"
219+
);
220+
}
221+
222+
[Theory]
223+
[MemberData(nameof(InvalidFileExtensionsData))]
224+
public static void CustomExceptionInvalidFileExtensions_Memory(string invalidString)
225+
{
226+
var exception = new Exception();
227+
228+
var act = () =>
229+
{
230+
var memory = new Memory<char>(invalidString?.ToCharArray() ?? []);
231+
memory.MustBeFileExtension(_ => exception);
232+
};
233+
234+
act.Should().Throw<Exception>().Which.Should().BeSameAs(exception);
235+
}
236+
237+
[Fact]
238+
public static void CallerArgumentExpression_Memory()
239+
{
240+
var act = () =>
241+
{
242+
var charArray = "txt".ToCharArray();
243+
var invalidMemory = new Memory<char>(charArray);
244+
invalidMemory.MustBeFileExtension();
245+
};
246+
247+
act.Should().Throw<StringException>()
248+
.WithParameterName("invalidMemory");
249+
}
250+
251+
[Theory]
252+
[MemberData(nameof(ValidFileExtensionsData))]
253+
public static void ValidFileExtensions_ReadOnlyMemory(string input)
254+
{
255+
var memory = input.AsMemory();
256+
257+
var result = memory.MustBeFileExtension();
258+
259+
result.Equals(memory).Should().BeTrue();
260+
}
261+
262+
[Theory]
263+
[MemberData(nameof(InvalidFileExtensionsData))]
264+
public static void InvalidFileExtensions_ReadOnlyMemory(string invalidString)
265+
{
266+
var act = () =>
267+
{
268+
var memory = new ReadOnlyMemory<char>(invalidString?.ToCharArray() ?? []);
269+
memory.MustBeFileExtension("parameterName");
270+
};
271+
272+
act.Should().Throw<StringException>()
273+
.And.Message.Should().Contain(
274+
$"parameterName must be a valid file extension, but it actually is {invalidString}"
275+
);
276+
}
277+
278+
[Theory]
279+
[MemberData(nameof(InvalidFileExtensionsData))]
280+
public static void CustomExceptionInvalidFileExtensions_ReadOnlyMemory(string invalidString)
281+
{
282+
var exception = new Exception();
283+
284+
var act = () =>
285+
{
286+
var memory = new ReadOnlyMemory<char>(invalidString?.ToCharArray() ?? []);
287+
memory.MustBeFileExtension(_ => exception);
288+
};
289+
290+
act.Should().Throw<Exception>().Which.Should().BeSameAs(exception);
291+
}
292+
293+
[Fact]
294+
public static void CallerArgumentExpression_ReadOnlyMemory()
295+
{
296+
var act = void () =>
297+
{
298+
var invalidMemory = "txt".AsMemory();
299+
invalidMemory.MustBeFileExtension();
300+
};
301+
302+
act.Should().Throw<StringException>()
303+
.WithParameterName("invalidMemory");
304+
}
138305
}

0 commit comments

Comments
 (0)