Skip to content

refactor: split assertions in separate classes to use correct grammar #30

refactor: split assertions in separate classes to use correct grammar

refactor: split assertions in separate classes to use correct grammar #30

GitHub Actions / Windows Tests succeeded Aug 10, 2023 in 0s

Windows Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
runneradmin_fv-az405-581_2023-08-10_05_11_36.trx 63✅ 3s
runneradmin_fv-az405-581_2023-08-10_05_11_39.trx 63✅ 3s

✅ runneradmin_fv-az405-581_2023-08-10_05_11_36.trx

63 tests were completed in 3s with 63 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 4✅ 8ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 4✅ 270ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 11✅ 19ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 11✅ 26ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 288ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 9✅ 1ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because764087d6-4da1-4bb6-823b-dbf057f6c4fd")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becausedcd7a921-d121-4a7a-af68-c2abe227fd73")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName847c6f8f-b869-4b2b-8ab0-730bf0ecdae7", fileName: "fileName452af0d3-d4fc-4df6-9b8d-1c2ad861c3eb")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName347903a3-5e77-40cc-9698-1e81e4bba2f1", fileName: "fileName00d43992-8c16-4f0b-9652-6414d7e13f8c", because: "because25eeeb60-aaff-475f-a192-1deab417fde7")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because373b4820-d67d-4737-853f-e12981869358")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becauseb0baf42f-817a-45f2-9490-dd407b46b130")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName28967e71-00c3-4005-b0a1-3c5f2c0d9ce2", fileName: "fileName03bc92da-6d20-405b-805b-07f928f23f50")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName23d8a7ce-3e1f-484b-b407-9b5f6d33a3fd", fileName: "fileName5e683190-1931-4471-a438-a08b38e2a3bf", because: "becauseb8825ad2-9e3b-4c40-9962-a8ad69822096")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ HasContentMatching_FullContent_ShouldNotThrow(content: "content32d7044c-a683-4abb-8f69-7e96735be334", fileName: "fileNamea3c5bee8-82d4-481f-af92-9ca065d49786")
✅ HasContentMatching_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content9e9ceefe-4bbb-4cb4-b638-cba4e15e2374", fileName: "fileName3199443b-4cd1-4552-92b4-e29dedf6ece7")
✅ HasContentMatching_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content0147b6fe-e1cb-4d2c-9569-ed91a2a8e9ab", fileName: "fileNamed03b2f1c-afe0-4ea8-bc2c-53382a6d6cad", because: "because02bf2e02-2fec-484c-82e5-2c931521d446")
✅ HasContentMatching_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "contentd4ae9c1b-cb85-441a-8227-9e6bae58ed87", fileName: "fileName9e364904-7227-48c7-b30f-e9bb64433957", because: "becausede0c8f38-d32d-4f6e-b163-a97a9a2b7697")
✅ HasContentMatching_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content49bcd72b-e05b-42a6-8715-6a40863fc56d", fileName: "fileName1467dec1-0043-4430-a0c0-ae3e3c41a4c5")
✅ HasContentMatching_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content1fe715d7-d13d-4525-9510-5789470579c8", fileName: "fileName656ae765-3819-4113-998b-765264b63a80")
✅ HasContentMatching_WithEncodingMismatch_ShouldThrow(fileName: "fileName8e93ceb2-6ff2-4461-a779-700a03fc63fe", because: "because0351099a-f6e8-477b-9d1c-10637259a190")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content7d52c0da-8da3-440b-ab1c-3d316643f366", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name03d4e132-b56d-4811-9d37-7f7d5c12d354" }, because: "becausefdcba68d-3b1b-47e1-89ea-089c380483db")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content390c8eab-23ca-4fc7-a154-7b8bc01a976c", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namefb5bc806-d35a-4e80-afa2-a57545a68873" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content6dc22e75-9a69-4cb0-85d4-1761e09d7cc8", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name0f26d1d6-4b37-426c-b445-d7c0c710b520" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content5e9230ed-5de6-484d-a4d2-bd0b50e49747", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namec434e14c-dd06-45b6-8fe3-946ca5c0bd3d" }, because: "becausea7ccee5d-1767-4ab9-ae55-8e9422342274")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content9c12278f-a469-4876-a358-e0289ac60d96", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namec9b96b28-ce24-49a7-9483-73ed4fed8fb0" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contente04e3731-98b6-41da-9967-6ad85393ebdb", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name0112fb3d-b699-448b-8852-60f4fbc0b8c3" }, because: "because93c2418e-a478-4f05-966a-536766c7359f")
✅ HaveContentMatching_FullContent_ShouldNotThrow(content: "content63e34076-5e2a-4ec6-b75a-d7c077b978a6", fileName: "fileNamee4107a26-dbf8-4641-a628-aaa8546ef479")
✅ HaveContentMatching_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content448acac1-14e7-4c98-95f4-43fc28931cff", fileName: "fileNameb06c1dfd-7658-4dfd-8f92-d983ab6e8f63")
✅ HaveContentMatching_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content8c173378-a076-4013-ae29-ddeb5c34c435", fileName: "fileNamed5373d70-6f8d-4d00-b7e1-b84ca4701e2d", because: "becaused16ca0ac-1521-46f6-b708-518d3f6651fa")
✅ HaveContentMatching_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "contentc326b52c-afb1-4c61-abe7-27bbdc701554", fileName: "fileName4fe2ba68-6d3a-4e9b-9873-31245470740e", because: "becauseac810dcd-f2ed-4755-9c2c-9046054c8929")
✅ HaveContentMatching_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentc2666183-d819-4a31-96de-ac53d27062b6", fileName: "fileName49914fb7-a690-4135-954e-f2e2f3271473")
✅ HaveContentMatching_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content9f050011-a639-475f-83cb-273673a6e545", fileName: "fileName710e8857-c175-4bad-8366-1136b92deede")
✅ HaveContentMatching_WithEncodingMismatch_ShouldThrow(fileName: "fileName92a457de-7bfb-4467-9032-5071b5ecdf4b", because: "because054afd96-0796-4f7e-9662-34b780d58a5d")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content7f8649fe-8754-4c3f-b27c-258e6f80b5d8", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name9bfef6c6-11e2-48fd-8fe8-25b9587e8f48" }, because: "becausee2ed012c-18aa-4a17-9dd0-bb0e6cdf9c3f")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentdd32a7ce-8f63-4558-bc7d-b346a77ca75b", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name304a4c66-45a1-423e-8fbd-d0824557459c" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path18a22c6d5-e2ea-4694-a7f9-750092b54590", path2: "path267ed9c88-3ca6-4a8c-b0c2-ff434f202005")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path19a18bd1f-e986-4864-8b3c-ff7b689eb0f6", path2: "path2cb7bcb15-8230-4264-95a1-be4094c51f9c")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becausefd5c7d1b-1e37-488c-ae00-f525973a25d7")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becausef4609c99-6bea-48ab-a23b-fd515fde37cb")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "pathefb07a24-d316-4a0e-a60a-5580caa4d135")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "path5ef5f808-e703-4e5c-be2f-12166744aa54", because: "because3c3becea-3c68-4877-9e0f-f5f2f493fec4")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path18cd6bf80-2cd4-4bbc-9fda-2de295eed830", path2: "path20668f27a-6bed-4633-871c-85cf036caaae")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1a48838c2-ad98-4443-8087-df835c126e30", path2: "path25970c5d0-c8b6-4615-b955-6a1ed971e709")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because74e7e640-2337-4489-841b-24d7de535662")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because4c21448f-0e48-4f47-91b2-aa2e19730038")
✅ HaveFile_WithFile_ShouldNotThrow(path: "patha845bd97-8bab-4b7d-9209-f47d45d0d9c1")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path59d10d09-5abc-42e2-9f29-0c633d45663c", because: "becaused197b13b-eb54-4021-aca3-ffe4efe2dddf")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1960016d0-2b70-44c0-955d-3e116c7a9c1b", path2: "path2470e7be1-7cf6-4bfd-8c65-ebf015c65c30")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path1b06b707c-b428-48f1-9fef-429bb73156a7", path2: "path217e34ede-3942-4d5b-ad97-9674adcab541")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because4303abfb-79b6-4682-b200-762d051a5cad")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "because02b0f298-a8ef-456f-b663-d7c08c8b8103")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "path7980955a-aefc-498a-b140-3e05e569b09d", because: "because079ebcfa-4a6d-43f2-81ef-d3ac1b11092f")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path8a9cd892-2abd-4cd0-90a8-ece9cf269fdc")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1981dc776-c0d3-4bd9-a941-0854815ef60e", path2: "path280abdaf2-d357-40d7-939c-594325815ba8")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path1cf2c8565-136e-4d5d-85fd-2daa49b2c91f", path2: "path28576de12-0ebc-463d-8d84-b45deb379f5f")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because170a751d-7fec-4990-af06-f3bd45566b64")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because39c40136-92ac-472a-9438-7760bfd5d4cc")
✅ NotHaveFile_WithFile_ShouldThrow(path: "pathf6b21068-75d0-4137-ab78-a5524d476971", because: "because5e2fb533-9daa-4e5c-9589-7e8f7dccbe66")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "pathfd0f945c-7146-4ebd-b2b3-27a7d59a4ecc")

✅ Testably.Abstractions.FluentAssertions.Tests.MatchTests

✅ Wildcard_MatchesNull_ShouldReturnFalse
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "*", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo?Bar", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo?r", testInput: "Foo.Bar", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "Foo", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "xFoo.Bar", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "xFoo", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo*", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo*r", testInput: "Foo.Bar", expectedResult: True)

✅ runneradmin_fv-az405-581_2023-08-10_05_11_39.trx

63 tests were completed in 3s with 63 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 4✅ 7ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 4✅ 203ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 11✅ 195ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 11✅ 91ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 34ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 9✅ 2ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because8a1b23be-e5f0-45fb-be95-6e832f109011")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because51b91006-35bc-4156-b2ce-a77f7ca986ca")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName27d98a6a-a6c6-4deb-9c34-41c8e5f49cf0", fileName: "fileName839375e2-4f80-489a-9e21-04a35e8d3578")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamec628e4eb-1f8b-4cd2-883c-d264bb5fa682", fileName: "fileName833d9324-212f-4406-be75-49328fcc7f18", because: "becausef8ed4646-1c4e-42d9-83f1-58987ecdf375")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because71aaa12d-0dd5-48c8-8fb3-8a91dd9f5a1e")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becauseba9f362c-55f0-4265-931b-290bba1f3e37")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName6d2efe6e-a640-4d36-b178-d79b33424f1c", fileName: "fileNamee018475b-bc2c-4fd2-a10f-4976b5b4b2c2")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName01667df3-f047-4ff0-8882-4f083694fa3b", fileName: "fileNamee2e86373-8604-49e4-a324-23d9ef7444ac", because: "because54c059be-4828-463d-811f-949b3645b813")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ HasContentMatching_FullContent_ShouldNotThrow(content: "content3f04a932-1129-469e-b971-4dd7dc05286f", fileName: "fileName9e3ae3d3-000e-4ce3-b18e-ffac160298be")
✅ HasContentMatching_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "contentcaa10c7c-6067-4212-9e9d-05ba363d726a", fileName: "fileName8555db9d-f8b4-4ebb-b7f1-9e993a29fe30")
✅ HasContentMatching_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content01973049-3ee5-4f3a-a880-7551ab49ae06", fileName: "fileName7e491ae9-9d51-494a-bd82-52d9f9aaf18e", because: "because8f26b478-fd07-4faa-a873-333f3cd7e180")
✅ HasContentMatching_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content2c647f0d-1326-4c25-b253-c8f387d17737", fileName: "fileName15fae0ad-8f02-4f16-bcec-f563fe6c8d3d", because: "because9b352694-d0d2-4c0c-8d2c-62284befa4b5")
✅ HasContentMatching_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentaa236cf8-adce-4372-a8df-fe19352ee516", fileName: "fileName7a7b590e-dfcf-4664-8b1d-a8f27f231349")
✅ HasContentMatching_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content88ff1f5a-0527-42f3-887c-a2f0eecc7ba3", fileName: "fileName05f7f270-fc56-46a5-b10a-921285b425db")
✅ HasContentMatching_WithEncodingMismatch_ShouldThrow(fileName: "fileName6b0fd6a5-1dd1-4ca5-8a7d-0dfd5d2c2609", because: "becausee18cef0b-9219-4782-9276-c450fed28299")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content7cae6d55-7d9f-4549-9c44-654fab761772", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namec31421c4-dcda-4478-9820-84383e84c518" }, because: "becauseb954f20b-baa9-4793-bb60-78b9545c1d99")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content7e3e3936-1044-44ca-b117-76c88677ddbb", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name171a23e1-0ca8-4e1b-bad2-f26b9eb0b3ee" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content8edb89b4-e12b-414e-b6b6-f66459d7d67e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name7ff04454-73f6-4abe-9dd4-8f30297d6867" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content917dea48-bcdb-4040-8c2c-ce7cd6cd503e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name8376f5ca-7c4c-48b1-bb21-383c7267b135" }, because: "because149960ac-1062-4280-9ec3-bd7f6c45c437")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content8bf72212-6838-4d98-b063-f7c52ed4505a", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namecc20976e-b758-472f-a966-8b9e2e64cf41" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content88151972-ffe5-4334-b24f-cef2136614ac", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namefef8b0d0-91a5-4b7f-b108-aad3778d4bd6" }, because: "because5f19a562-e49f-4c5c-8a57-94febc9fd651")
✅ HaveContentMatching_FullContent_ShouldNotThrow(content: "contentecc15c9e-2569-4145-9b83-65b4808830ef", fileName: "fileNamed2299b76-a16a-41e9-b565-0fd8d1ce8c3c")
✅ HaveContentMatching_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content1f425faf-b47f-4961-b02c-77bafb8e4fe1", fileName: "fileName9ef7d258-f176-4b13-a912-3bf734dc4426")
✅ HaveContentMatching_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "contentcba475de-678e-4066-807c-2de5ae582a94", fileName: "fileNamee4f91a24-4fb6-4f77-8c6e-49968e729b49", because: "because7e0b8a00-6252-4bdb-9086-bdb05b8c22d6")
✅ HaveContentMatching_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content5897d360-5b18-4045-8180-f88bdacbedda", fileName: "fileNamefafaf228-e8b8-4e1c-bf11-153838ce5fe4", because: "because9f6fbe3c-c9d0-4ce3-89b2-6a3cb1d7b505")
✅ HaveContentMatching_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content6fa034ce-d6ea-4a76-83e1-1e53d1ac6cef", fileName: "fileNamec87f4d1e-ecaa-402a-849a-346f696daae0")
✅ HaveContentMatching_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content2e73b0f0-0b5e-4ee1-9e58-1c2555207ae1", fileName: "fileName0e623d70-ce62-4388-9bc6-fa206d96b77c")
✅ HaveContentMatching_WithEncodingMismatch_ShouldThrow(fileName: "fileNamed6ab8364-0595-4d00-81b2-c63623c4294f", because: "becausea6bcfe50-3543-4692-8b2d-fcb15527c5d5")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content185a358b-a685-4042-8fbc-4241b5e90604", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameeec49e75-b1b2-4e92-88bb-b73ea84c1627" }, because: "because6ddc4d77-69f6-4dbc-b996-cf0a933d3abe")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content1064c7a6-037b-443f-b4a3-c77b8c55830b", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name98bde971-f2b4-43c9-8ff2-b2a5e44b97cc" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path1f8fe1716-2a81-4428-839c-76742527c279", path2: "path2a0d56e4e-8000-487c-ae02-2932c52a10fd")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1c9343205-3880-460d-af79-6dfdd80e4d97", path2: "path2b2f7d8f6-f872-4725-9c6b-c38c5e605a83")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because1e12dcb6-4e84-4ab1-bf30-c146cf4aeaee")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becauseeb8fcc48-ed5b-4264-bd16-fcdf9fb68875")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "patha6ae6dd6-1b4e-43da-aeb6-0a8e35f1fd3e")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "pathb7777ec5-2b0d-4254-bb93-0619b542193c", because: "becausea2d77bd0-c4dc-4d72-bdbd-909df0cbffd4")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path16d1a07bc-0ade-4449-b880-c99a32f83530", path2: "path220ca0de5-4a47-41b3-96be-c6d94cb04e69")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1f05909fb-aa8d-45d4-a172-322cd71203dd", path2: "path2a7f3a462-440d-4c33-9208-6053d5979971")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "becausef3acbfd2-e99f-4f3b-a092-16282634dc80")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "becauseed531a52-44e8-4480-ab7d-2c2e20535e17")
✅ HaveFile_WithFile_ShouldNotThrow(path: "path2815f6fc-5eb7-4982-bc9a-33abe869a84c")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path246bb28d-0fee-47c1-aea4-b5b20b20ac2b", because: "becauseb6bd92b7-d6e5-4224-b982-44eb2f21dd84")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1187ff440-c73a-4ea8-9abb-b81e1fc29530", path2: "path25276bfab-4723-4f21-8959-13938d489d47")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path19c2025b6-5dd2-4bac-b62e-a41aeb349531", path2: "path2faeafe09-3607-4795-b548-b13e50da64f9")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becausee026aabb-16c3-40a2-9eac-679a91612a34")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becausef34b7391-98f8-46d6-8372-55b0d2c8f81a")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "pathe75d9012-affa-47c6-9dfa-daa4a9513cef", because: "because79f888ec-c97f-4eb2-946f-51167dea3bdd")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path92ac1299-3b06-4580-ab47-1bf0813de454")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1c822e0d6-1a78-4b6d-a8c1-6f2fa084d56e", path2: "path266eab0fa-8058-4476-9269-ae897df11bde")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path1497193be-b111-43ba-bf6e-fb951881f27c", path2: "path2092eb2b2-fd24-4418-a181-da9049336eff")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because1d1c43bf-59c9-4a65-bc55-977522bc24ed")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because392c20fc-766e-44c1-bf06-92638e63c18e")
✅ NotHaveFile_WithFile_ShouldThrow(path: "pathb62d8653-e20a-4a43-8808-16b5da46f260", because: "because5d2b622b-f405-4664-ae0b-dc201fa9c0c4")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "path1ed356ba-0d73-4e68-9a90-c4dff1774952")

✅ Testably.Abstractions.FluentAssertions.Tests.MatchTests

✅ Wildcard_MatchesNull_ShouldReturnFalse
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "*", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo?Bar", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo?r", testInput: "Foo.Bar", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "Foo", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "xFoo.Bar", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo", testInput: "xFoo", expectedResult: False)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo*", testInput: "Foo.Bar", expectedResult: True)
✅ Wildcard_ShouldReturnValidRegexMatchingExpectedResult(wildcard: "Foo*r", testInput: "Foo.Bar", expectedResult: True)