Skip to content

Commit 10a70cf

Browse files
authored
Refactor tests to use Verify for snapshot assertions (#83)
1 parent 9b60bda commit 10a70cf

File tree

34 files changed

+285
-102
lines changed

34 files changed

+285
-102
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
FileName: largefile.bin,
4+
PropertyName: largeFile,
5+
Size: 2147483647
6+
}
7+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[
2+
{
3+
FileName: document.pdf,
4+
PropertyName: file1,
5+
Size: 1024
6+
},
7+
{
8+
FileName: image.png,
9+
PropertyName: file2,
10+
Size: 2048
11+
},
12+
{
13+
FileName: data.json,
14+
PropertyName: file3,
15+
Size: 512
16+
}
17+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
FileName: test.txt,
4+
PropertyName: uploadedFile,
5+
Size: 256
6+
}
7+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
{
3+
FileName: empty.txt,
4+
PropertyName: emptyFile
5+
}
6+
]

tests/ExampleApi.Tests/Endpoints/FileHandling/PostFileHandlingListOfFilesEndpointTests.cs

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,7 @@ public async Task Handle_WithMultipleFiles_ReturnsAllFileDetails()
2121
IEnumerable<ResponseModel> result = await endpoint.Handle(formFileCollection, CancellationToken.None);
2222

2323
// Assert
24-
ResponseModel[] resultArray = [.. result];
25-
resultArray.Length.ShouldBe(3);
26-
27-
resultArray[0].FileName.ShouldBe("document.pdf");
28-
resultArray[0].PropertyName.ShouldBe("file1");
29-
resultArray[0].Size.ShouldBe(1024);
30-
31-
resultArray[1].FileName.ShouldBe("image.png");
32-
resultArray[1].PropertyName.ShouldBe("file2");
33-
resultArray[1].Size.ShouldBe(2048);
34-
35-
resultArray[2].FileName.ShouldBe("data.json");
36-
resultArray[2].PropertyName.ShouldBe("file3");
37-
resultArray[2].Size.ShouldBe(512);
24+
await Verify(result);
3825
}
3926

4027
[Fact]
@@ -50,11 +37,7 @@ public async Task Handle_WithSingleFile_ReturnsSingleFileDetails()
5037
IEnumerable<ResponseModel> result = await endpoint.Handle(formFileCollection, CancellationToken.None);
5138

5239
// Assert
53-
ResponseModel[] resultArray = [.. result];
54-
resultArray.ShouldHaveSingleItem();
55-
resultArray[0].FileName.ShouldBe("test.txt");
56-
resultArray[0].PropertyName.ShouldBe("uploadedFile");
57-
resultArray[0].Size.ShouldBe(256);
40+
await Verify(result);
5841
}
5942

6043
[Fact]
@@ -85,9 +68,7 @@ public async Task Handle_WithZeroLengthFile_ReturnsZeroSize()
8568
IEnumerable<ResponseModel> result = await endpoint.Handle(formFileCollection, CancellationToken.None);
8669

8770
// Assert
88-
ResponseModel[] resultArray = [.. result];
89-
resultArray.ShouldHaveSingleItem();
90-
resultArray[0].Size.ShouldBe(0);
71+
await Verify(result);
9172
}
9273

9374
[Fact]
@@ -104,9 +85,7 @@ public async Task Handle_WithLargeFile_ReturnsCorrectSize()
10485
IEnumerable<ResponseModel> result = await endpoint.Handle(formFileCollection, CancellationToken.None);
10586

10687
// Assert
107-
ResponseModel[] resultArray = [.. result];
108-
resultArray.ShouldHaveSingleItem();
109-
resultArray[0].Size.ShouldBe(largeFileSize);
88+
await Verify(result);
11089
}
11190

11291
static IFormFile CreateMockFormFile(string fileName, string name, long length)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
SomeData: Property Name Test,
3+
SingleFile: {
4+
FileName: file.pdf,
5+
PropertyName: CustomSingleName,
6+
Size: 100
7+
},
8+
TotalFileCount: 2,
9+
ReadOnlyList1: [
10+
{
11+
FileName: file.txt,
12+
PropertyName: CustomListName,
13+
Size: 200
14+
}
15+
]
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
SomeData: Test Data,
3+
SingleFile: {
4+
FileName: single.pdf,
5+
PropertyName: SingleFile,
6+
Size: 1024
7+
},
8+
TotalFileCount: 2,
9+
ReadOnlyList1: [
10+
{
11+
FileName: list.txt,
12+
PropertyName: ReadOnlyList1,
13+
Size: 512
14+
}
15+
]
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
SomeData: Multiple Files Test,
3+
SingleFile: {
4+
FileName: single.pdf,
5+
PropertyName: SingleFile,
6+
Size: 100
7+
},
8+
TotalFileCount: 5,
9+
ReadOnlyList1: [
10+
{
11+
FileName: list.txt,
12+
PropertyName: ReadOnlyList1,
13+
Size: 200
14+
}
15+
],
16+
FileCollectionList: [
17+
{
18+
FileName: col1.png,
19+
PropertyName: FileCollectionList,
20+
Size: 300
21+
},
22+
{
23+
FileName: col2.jpg,
24+
PropertyName: FileCollectionList,
25+
Size: 400
26+
},
27+
{
28+
FileName: col3.gif,
29+
PropertyName: FileCollectionList,
30+
Size: 500
31+
}
32+
]
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
SomeData: Test Data,
3+
SingleFile: {
4+
FileName: single.pdf,
5+
PropertyName: SingleFile,
6+
Size: 1024
7+
},
8+
TotalFileCount: 5,
9+
ReadOnlyList1: [
10+
{
11+
FileName: list1.txt,
12+
PropertyName: ReadOnlyList1,
13+
Size: 512
14+
},
15+
{
16+
FileName: list2.txt,
17+
PropertyName: ReadOnlyList1,
18+
Size: 256
19+
}
20+
],
21+
ReadOnlyList2: [
22+
{
23+
FileName: optional.doc,
24+
PropertyName: ReadOnlyList2,
25+
Size: 128
26+
}
27+
],
28+
FileCollectionList: [
29+
{
30+
FileName: collection.png,
31+
PropertyName: FileCollectionList,
32+
Size: 2048
33+
}
34+
]
35+
}

tests/ExampleApi.Tests/Endpoints/FileHandling/PostFileHandlingMultipartEndpointTests.cs

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,7 @@ public async Task Handle_WithValidRequest_ReturnsCorrectResponse()
4040
ResponseModel result = await endpoint.Handle(request, CancellationToken.None);
4141

4242
// Assert
43-
result.SomeData.ShouldBe("Test Data");
44-
result.TotalFileCount.ShouldBe(5);
45-
46-
result.SingleFile.FileName.ShouldBe("single.pdf");
47-
result.SingleFile.PropertyName.ShouldBe("SingleFile");
48-
result.SingleFile.Size.ShouldBe(1024);
49-
50-
result.ReadOnlyList1.Count.ShouldBe(2);
51-
result.ReadOnlyList1[0].FileName.ShouldBe("list1.txt");
52-
result.ReadOnlyList1[1].FileName.ShouldBe("list2.txt");
53-
54-
result.ReadOnlyList2.Count.ShouldBe(1);
55-
result.ReadOnlyList2[0].FileName.ShouldBe("optional.doc");
56-
57-
result.FileCollectionList.Count.ShouldBe(1);
58-
result.FileCollectionList[0].FileName.ShouldBe("collection.png");
43+
await Verify(result);
5944
}
6045

6146
[Fact]
@@ -82,8 +67,7 @@ public async Task Handle_WithEmptyOptionalList_ReturnsEmptyList()
8267
ResponseModel result = await endpoint.Handle(request, CancellationToken.None);
8368

8469
// Assert
85-
result.ReadOnlyList2.ShouldBeEmpty();
86-
result.FileCollectionList.ShouldBeEmpty();
70+
await Verify(result);
8771
}
8872

8973
[Fact]
@@ -114,13 +98,7 @@ public async Task Handle_WithMultipleFilesInCollection_MapsAllFiles()
11498
ResponseModel result = await endpoint.Handle(request, CancellationToken.None);
11599

116100
// Assert
117-
result.FileCollectionList.Count.ShouldBe(3);
118-
result.FileCollectionList[0].FileName.ShouldBe("col1.png");
119-
result.FileCollectionList[0].Size.ShouldBe(300);
120-
result.FileCollectionList[1].FileName.ShouldBe("col2.jpg");
121-
result.FileCollectionList[1].Size.ShouldBe(400);
122-
result.FileCollectionList[2].FileName.ShouldBe("col3.gif");
123-
result.FileCollectionList[2].Size.ShouldBe(500);
101+
await Verify(result);
124102
}
125103

126104
[Fact]
@@ -147,8 +125,7 @@ public async Task Handle_PreservesPropertyNames_InMappedFiles()
147125
ResponseModel result = await endpoint.Handle(request, CancellationToken.None);
148126

149127
// Assert
150-
result.SingleFile.PropertyName.ShouldBe("CustomSingleName");
151-
result.ReadOnlyList1[0].PropertyName.ShouldBe("CustomListName");
128+
await Verify(result);
152129
}
153130

154131
static IFormFile CreateMockFormFile(string fileName, string name, long length)

0 commit comments

Comments
 (0)