Skip to content

fix: HasFilesMatching for more than one matching file #60

fix: HasFilesMatching for more than one matching file

fix: HasFilesMatching for more than one matching file #60

GitHub Actions / MacOS Tests succeeded Aug 21, 2023 in 1s

MacOS Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
_Mac-1692611149706_2023-08-21_09_48_39.trx 97✅ 3s
_Mac-1692611149706_2023-08-21_09_48_43.trx 97✅ 4s

✅ _Mac-1692611149706_2023-08-21_09_48_39.trx

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

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 6✅ 275ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 5✅ 71ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 17✅ 30ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 24✅ 298ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 268ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests 8✅ 31ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 13✅ 21ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because00b6c164-e5e5-4b4b-892d-145fe8b312e4")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because82a05d3d-f2a7-4ca3-9ee6-8131f9239cc8")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNameb05afefd-0d35-4114-a22d-bec817dd627d", fileName: "fileName92a23eb2-1bbd-47ae-add4-6819d30b0d6b")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName1a37b7b3-c128-4c9a-a881-88ef6a29849b", fileName: "fileName257935b4-241c-4bc4-bbd7-2f045a80788f", because: "becausea213ee20-c851-4d71-a975-9d683cadc311")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryNamef506672b-8c9a-47ac-84cf-8738310459a3", fileNamePrefix: "fileNamePrefix616b0567-dd71-4e94-aa71-297ada323f28", because: "because03a8e188-16cf-4ee2-bbb7-cfa57d7af337")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName788e4e8c-fec7-4345-93e3-e76535f76acc", fileNamePrefix: "fileNamePrefix7d69ee63-d780-402e-84ef-a8587214be6e", because: "becauseca9fe87e-2670-429b-a62d-c909417fc522")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becausec7bd4ff1-80e4-4535-a0ff-955010196a25")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because9f7ee12a-a760-48bd-a6c5-4d6c15a545b2")
✅ HaveFileMatching_Null_ShouldThrow(because: "because68c84eb7-7fd1-4842-b0ce-596ba26e8cf4")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNamecc0c3ce9-e65c-4d90-baac-482a80f262e1", fileName: "fileName0a82e6d8-cfe9-490e-b387-d848e388a992")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamee6b06b25-7310-4a6a-a48a-20bcca9b5e99", fileName: "fileName5adb2b68-1485-47ea-8f95-a07ef31eed2b", because: "because9d786ffd-d8b1-457e-8dfd-13efa1c7e797")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ DoesNotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contented85bc26-a188-4374-bebc-8dd73490b0cf", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name4bba1cfa-cb60-49c7-af7a-1eac4dfcdf40" }, because: "becauseeb5f026d-2699-45bd-a80c-0084e90b8e70")
✅ DoesNotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contenteadb0911-92ec-4537-b4b7-dabcee81b2b8", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name6bbda6d6-8e72-465c-b01f-9df7b23d5bd0" })
✅ HasAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content9329cdea-768d-4c02-b936-3937a6db9098", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name539c8cdb-e88e-4738-92cb-2ec2e30757d1" })
✅ HasAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentbe994991-f13b-4536-a180-726979b6039b", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "named91dd656-7962-4c0b-9728-c155d7cdc263" }, because: "because6394b4dd-ce93-4f68-b72b-edb99aa25494")
✅ HasContent_Bytes_FullContent_ShouldNotThrow(bytes: [48, 16, 46], fileName: "fileName2ffdb23c-d834-40b1-9bc4-61ca1ead8cb2")
✅ HasContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [126, 57, 132], fileName: "fileName4959837e-ed16-4984-b1c8-f0f5f1222199", because: "because134e5cad-e84c-4556-b11a-458e0f7161e0")
✅ HasContent_FullContent_ShouldNotThrow(content: "content789a80d0-94ff-4a9e-8139-54826987f02f", fileName: "fileName65455121-1338-4675-9187-663a40950259")
✅ HasContent_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: "content5ae2079d-4c0e-47ad-8689-6f54db0d3521", fileName: "fileName24a63461-be26-40ab-81c5-c0a5f366375b")
✅ HasContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "contentab5b8736-b6ed-4b1c-9e40-de5c615fa65c", fileName: "fileName7422b1da-a7e9-480f-8e8d-efba0d884383", because: "because4c34289d-674a-45ba-a843-5d880135aec4")
✅ HasContent_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: "content839b7410-8837-4837-b716-771868664492", fileName: "fileName0203298e-46ce-4d0f-8c42-cf614180720f", because: "becauseb7161399-7e00-4e12-9889-4792f4ee3ca9")
✅ HasContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentc95bc666-f2c7-4db6-b347-d544d5cfea81", fileName: "fileNamef975371a-2d0f-47ff-86b4-884d4d71f0b9")
✅ HasContent_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: "content7845e449-4e3e-4c48-8771-62e6aac87d78", fileName: "fileNamee993076f-c281-4f8b-9728-98001eab61ea")
✅ HasContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName00849ebe-69af-4cb1-8c93-2cff47b7c5c4", because: "becausef97556c7-f9de-4632-826b-9c4e38626482")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content0a9eaf87-5804-4032-80cf-a09aa122010d", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namef1296556-20ec-47d1-95dc-eec509420944" }, because: "becausef80b7db4-447a-40a1-b198-56d4263af249")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content2f97de49-22fd-4fd7-b21f-72e6aaf93be6", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name01afec28-9d99-4b7e-8ced-b1ee79d9db46" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentf88cbee0-4d29-41ca-8a1a-5054bddcbef7", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name926373e5-4108-4699-b718-2a77c6ad6d56" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content1f7879c1-b669-4b0a-bf62-baf550904f57", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1ae57f82-6b75-4019-8967-b5974c279484" }, because: "becausef50d721b-4561-4629-818c-b2ab66735fcf")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_Null_ShouldThrow(because: "because984d96e7-818f-4691-8f92-b594213baab3")
✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content2ed8d853-6946-4156-a7aa-c5c1560eec2e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1d5cb322-4b13-4823-b4f7-35815865b03b" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content1905db30-d5f1-4ed9-b939-33bcd78d36c1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name307a1e0d-5766-413a-b352-c9fe376047e4" }, because: "becausecb00e35b-50a3-48e9-902b-891abfac41d4")
✅ HaveAttribute_Null_ShouldThrow(because: "becausefe20944a-c578-4c58-a80c-101a199eabad")
✅ HaveAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contenta065b183-47b5-471a-88b7-a7e69dde1c4c", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name5dd5beb3-7088-476c-b0b5-9ea8c3a4be25" })
✅ HaveAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contenta578f73a-6377-458a-9347-625c55bce342", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name84c61af2-87a6-41d4-be5d-7fa9936f922a" }, because: "becausef5ef4b40-d109-45e7-b6c2-2b1557b739d5")
✅ HaveContent_Bytes_FullContent_ShouldNotThrow(bytes: [147, 162, 51], fileName: "fileName85cb1571-640b-4763-a7cb-54a8db334667")
✅ HaveContent_Bytes_Null_ShouldThrow(bytes: [164, 19, 91], because: "becausebc358468-ca6a-415a-b494-5fffadbb1935")
✅ HaveContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [11, 177, 200], fileName: "fileName9b15c929-0f8c-45da-b904-715e960999af", because: "because56bbdffb-c0da-402f-a6d7-1178cdf62e54")
✅ HaveContent_FullContent_ShouldNotThrow(content: "content8663f05a-f354-4467-96e5-863f61428430", fileName: "fileNamecbade878-337e-4159-9032-cbc4be4fba3d")
✅ HaveContent_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: "content6086e6e0-3ab7-407c-b717-df2ad28f2f2f", fileName: "fileName954a96d4-1b00-4e6b-99a3-11ebf581ad23")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content28647ccd-bc66-410e-860e-335b3b560735", fileName: "fileNamec1b1f700-0e87-4549-846d-2230d5c56554", because: "becauseb721dec9-a15b-4a98-b2f6-86d4809dabeb")
✅ HaveContent_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: "content896e7ffd-f114-4f39-b697-2982d985a5e6", fileName: "fileNameac7b605f-c071-4e59-8d76-6f35453480c4", because: "because37678318-6aa6-46bf-b8af-505bac6cbe6c")
✅ HaveContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentfb3a8ab6-7859-413a-91cf-8e2f9aa4050d", fileName: "fileNameb9f455c7-41a8-451e-b141-c36063c92f9f")
✅ HaveContent_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: "content5c3f560b-affe-4d5b-8c9b-497669b7e110", fileName: "fileName5d6228d1-0616-45b3-aa1d-b6d3977903b8")
✅ HaveContent_StringContent_Null_ShouldThrow(content: "content7cc0a23c-8dca-4812-9196-e37ce4ac5e92", because: "becausef4c0db4f-1d8a-4700-b4f1-f5df01520cca")
✅ HaveContent_StringContent_WithEncoding_Null_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content961e3136-0d42-476b-ad93-1e7f14e865ad", because: "because039c9754-7166-47de-af76-15694a251930")
✅ HaveContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName9fe1d661-5448-4132-bcfa-579c0a2c6ea0", because: "because17ea902e-59fd-4c0e-8bf5-ed2737e1684b")
✅ NotBeReadOnly_Null_ShouldThrow(because: "becausef1e707be-514a-4b20-b1c6-75a721aa32a1")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content09a3d915-c290-4760-8f01-04bbcef7162f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namecae166c7-aff8-4d86-8d4a-ecde5f221830" }, because: "because3e9997db-3aef-413c-958b-b196ee7a4b93")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contente9fe27d8-1ab2-49da-b98b-ced239becdf9", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1eb8b79a-ee5a-4650-9798-d756d751973d" })
✅ NotHaveAttribute_Null_ShouldThrow(because: "becauseebefb324-380b-4cea-982e-0dc48e0e2fcf")
✅ NotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content88f91eba-8bac-42ac-80e7-5c96a3e8ed77", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name33a240fd-9d93-4c4e-abef-0a3e0a11e258" }, because: "because1c7d8337-18de-4857-8d85-3c391bc4c741")
✅ NotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content6f116b94-0fa9-4deb-9753-139dfceefa52", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1985e8a8-050e-491b-a583-45c9a0ca95dc" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path1aabe1abe-cc7a-46ff-8712-51d649652416", path2: "path2ea08c996-703c-46b0-8018-0f7f5394bc80")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path195e545d6-6ce0-421f-b95c-934b375496d8", path2: "path266d1219a-2fa3-41e6-98b1-396795a80a0a")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because8a83040a-5af3-4d56-8d16-3dece0ffa1eb")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "because8cdb3889-4cc4-4b29-9347-568ef0bdcef6")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "path8de0ab38-66cb-47c2-81ae-eefbace1af65")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "pathf041ffc5-594a-449e-ad79-0b7e83f9b1d0", because: "because954095ec-042f-453a-b15c-b09e3c9de18e")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path1841608f5-5cf5-437f-b5ab-dc2ec6aa50d4", path2: "path276137688-b4d0-4b67-8dda-57d28c35b547")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path16e900d8a-953e-422e-8d6a-9342f9e55d99", path2: "path2026822c0-d5e5-4800-abbf-7104c6d17797")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because931d024a-9158-4318-aa2a-7ffd01c7bbcf")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "becaused06185b3-68fb-440d-a0d8-caeca76a798e")
✅ HaveFile_WithFile_ShouldNotThrow(path: "path092791f1-d739-4e9f-a3be-3e0ae439d734")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path255c8e81-9e89-4d10-b264-d5c694d69010", because: "because75002150-9a0d-4e4f-8590-96e0ef37cc60")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1aa6f06a8-43fa-4a5f-a22f-916d26fb43fa", path2: "path266f6ab3e-8fee-470e-91c7-c92a17051f4a")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path1896caf78-8cd0-4d86-824b-cf7e951b4435", path2: "path2a1e9c163-4906-4ed6-928b-eada23c51e81")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because7081c866-2e2d-4b3e-88ae-ef4a42f5dbf9")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "because9579a81e-1c9c-4962-ad6d-da45a4f77933")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "patha85e0e59-3034-4512-b3cf-2995c74218dc", because: "because88320dc5-6c5f-45e1-9592-7b27b7d2ca33")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path5a701a4c-a10a-4a5a-8bb5-dc42fac73a06")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path18732b74e-1b35-4764-ae0d-abfce22635f8", path2: "path2e5bac9a9-d624-4713-9706-99da735fb47e")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path1d3e6ae9e-aee1-4df8-b277-010589d007a9", path2: "path2c1242a69-cd11-4890-8544-b68ef1b1d74d")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because77f5733f-d9e5-4a8d-9a55-ff026d9da41c")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because15281d8a-26f6-43d8-9cb9-7b2003fc4ae7")
✅ NotHaveFile_WithFile_ShouldThrow(path: "pathf98d2279-4fb2-4b7f-8e5e-7ccc7fa8fd1b", because: "becausea9e2e74b-67e8-435d-a55b-358da1d97fa6")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "path2850f714-e95f-40f0-b492-6c89a1f171c6")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests

✅ Exist_ForDirectoryInfo_Null_ShouldThrow(because: "because8e928ce0-b68e-420f-b932-1c3c45710440")
✅ Exist_ForDirectoryInfo_WithCorrectDirectory_ShouldNotThrow(directoryName: "directoryName229b455c-68a8-4963-b59f-2668fc89231a")
✅ Exist_ForDirectoryInfo_WithoutCorrectDirectory_ShouldThrow(directoryName: "directoryName43ebfeb1-63e0-4e31-bb01-3d801d4e2ea4", because: "because8d444c3b-d421-41d3-a04e-ece790041ba3")
✅ Exist_ForDirectoryInfo_WithSameFile_ShouldThrow(fileName: "fileNamef4b831d8-522f-4dd2-997a-a4888fbfe472", because: "because97627b77-fe30-4ea0-9686-7b158342e1ae")
✅ Exist_ForFileInfo_Null_ShouldThrow(because: "because59150a06-c61a-4703-8c7a-f111967afb53")
✅ Exist_ForFileInfo_WithCorrectFile_ShouldNotThrow(fileName: "fileName6f39a7ad-1f22-4998-91c1-948cf39ac7e6")
✅ Exist_ForFileInfo_WithoutCorrectFile_ShouldThrow(fileName: "fileName27798316-0373-47a0-a545-e7756428687a", because: "because8f30fdc2-750d-40d7-af7b-2443d0545ad5")
✅ Exist_ForFileInfo_WithSameDirectory_ShouldThrow(fileName: "fileNamef743c39b-fb27-45ab-a6c0-65df52034de4", because: "because28bafafc-d684-4dcd-8c69-5475dd5ccbce")

✅ Testably.Abstractions.FluentAssertions.Tests.MatchTests

✅ ImplicitCast_FromNull_ShouldUseEmptyString(pattern: "")
✅ ImplicitCast_FromNull_ShouldUseEmptyString(pattern: null)
✅ 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)
✅ Wildcard_WithIgnoreCase_ShouldConsiderFlag(ignoreCase: False)
✅ Wildcard_WithIgnoreCase_ShouldConsiderFlag(ignoreCase: True)

✅ _Mac-1692611149706_2023-08-21_09_48_43.trx

97 tests were completed in 4s with 97 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 6✅ 13ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 5✅ 219ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 17✅ 35ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 24✅ 51ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 242ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests 8✅ 222ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 13✅ 36ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becausea92a4dfd-36e1-40da-ba89-5ff3d5a78d09")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because7c1fb2fa-41f0-47ce-89ee-31fdad06226f")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNamecd09d61c-a6a3-4d72-b196-026da2de66b7", fileName: "fileName5bc672b3-0794-4947-8ca0-a49664323f2d")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamefd3f2fe0-d8d3-48b2-8e4f-63f38dabd1d2", fileName: "fileName4fa06313-478c-47c1-9550-7419efbb284e", because: "because3c5d40d1-8504-46b2-9b5e-1563c9023c84")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryName43d561a8-efd4-4811-952c-ffd8aabfcdee", fileNamePrefix: "fileNamePrefix304aa1ef-f499-4082-b7f8-5639bf2fabf5", because: "because8db7284e-426b-4eb7-9d19-86a0d21fbd7f")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName44aebdea-c97f-4aa9-be98-1d4865ff9eed", fileNamePrefix: "fileNamePrefix468e231a-4ad7-4dd0-8b18-4963899537d6", because: "because2a03cdf3-7fd1-4d2e-b5f7-984af281ae8b")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becauseee90d86b-4e92-4a7b-841c-dfc42c8ff90e")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because5324b232-219d-4fc3-9463-7adc0bb260e5")
✅ HaveFileMatching_Null_ShouldThrow(because: "because744aaf68-0546-4e98-86cc-b84337aa81d8")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNamed6cee146-f9e7-47a9-89fe-85253dcfa393", fileName: "fileNamef3dec2e9-a591-4c75-aaac-cb259333c6d0")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName17fed39a-62f0-49bc-be54-cedaf4555c7c", fileName: "fileNameb4fa8ad4-dd89-47e1-83bb-5d03481355aa", because: "because010d093e-02df-4eca-a0fb-0c19d3c952e7")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ DoesNotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content0273e59d-e85d-4bc2-a50a-1dfce06979a9", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name5674a235-49ce-4d6a-84c1-17babc1d84d6" }, because: "becauseaca6f9f3-0fe6-4a67-b1ad-bac67d975f50")
✅ DoesNotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content4ca647e6-b972-4bfc-886e-18befe94c827", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name5128e98c-dd8a-4e6a-a8c4-6821443c4c3e" })
✅ HasAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content5db4b474-90fb-4074-b105-c96d3fe3bbc8", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namebb8c5515-fbf8-4c18-a94d-4e47a98afbc6" })
✅ HasAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content44d90596-066a-4cd5-83bd-f8fec3d102a9", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name8a2c827a-6de5-4e62-8bac-c3d2e3362869" }, because: "because48c47664-aa09-4585-ab5a-0f2e9c202f54")
✅ HasContent_Bytes_FullContent_ShouldNotThrow(bytes: [231, 247, 39], fileName: "fileName0c6dae37-404d-4c29-9d66-b882141e592f")
✅ HasContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [224, 112, 140], fileName: "fileName048e603f-d130-4285-86c0-c8014aa2d3ca", because: "because06404c45-317a-4e3c-86f2-6d92432a57e5")
✅ HasContent_FullContent_ShouldNotThrow(content: "content55234c73-a22f-4dae-a963-b86898f9d04f", fileName: "fileNamecb1bbde9-5976-49df-8b5b-aae327fef84a")
✅ HasContent_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: "content7bc50846-6f7f-47f3-a5a0-2063584ab4b4", fileName: "fileNamef48d0588-0dad-44b7-9a42-58262683ca7a")
✅ HasContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "contentb8512ef8-75ff-42a0-ad81-f13f2e668bdb", fileName: "fileName51bfb48f-ef27-4919-9d87-aa24e4ff307c", because: "because8798e639-716d-4b5f-ac70-efd2d4a411b3")
✅ HasContent_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: "content8accfa60-3c37-4f56-b7a9-d1035ab72d55", fileName: "fileNamee95ff870-b6de-4c00-ab08-ae38549b67f9", because: "because316da4d9-47d9-4b5c-9965-611d4deeba05")
✅ HasContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content7f3fd269-f3ce-4601-aca7-8f074c34bbaa", fileName: "fileName576e3daf-9e5c-4da7-9a0a-8bb6533f6825")
✅ HasContent_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: "content3d7deee6-f1b8-4bb8-b016-eff70f60d111", fileName: "fileNamed483396a-9616-4547-bbcd-fe3f3093862a")
✅ HasContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName83db06a6-f06e-4cf2-86b3-30f2effa2ade", because: "becausef8e5aa5d-dd47-4313-961f-8506b33f0c83")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content938726ba-4a0a-48d1-b723-ac6cabe63d98", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namec45d5081-5d08-446a-bb5f-61e24b957898" }, because: "because7242fa77-2ffc-4eae-90d1-3175d7b970ad")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content25f2163b-1691-41d3-af91-c81818dbe85f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name270db594-fe5c-4c19-bb25-51d948035df6" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentfd150e73-f918-4ff9-82da-806b483a3269", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name8f1f94c0-7389-453c-a773-64c455c4047d" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content885464c2-d85a-45d1-b041-f2abfe8d25fa", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name3b02ac85-edd7-447d-a045-b704fb98cf6a" }, because: "because18dab977-c2f7-4ebd-aeed-7664158603cf")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_Null_ShouldThrow(because: "becauseb377f811-9f22-4b69-8c38-5ec47190c2c7")
✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content8cdca121-04f4-4cf8-8ec6-995c16a0cacb", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namebe14cc84-1780-4876-8fec-064bf1d751f4" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content9b3d840b-3e0e-4011-a422-cf4d30ee632d", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namece1c760c-d2ba-4426-9980-d348a64eca4c" }, because: "because6ffbd357-e283-4f14-80a7-98834e239420")
✅ HaveAttribute_Null_ShouldThrow(because: "because32ded140-319c-4ef8-ade4-fc0e126ae5a0")
✅ HaveAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentac7b1112-7375-4ab5-9431-8cc5b706b0b0", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name4c5de5ef-0d5a-4843-9249-f505027b7128" })
✅ HaveAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentedcbafe7-c4eb-4c2d-9205-3241f7c2e35d", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name448cd530-a93d-4a11-ac0f-2ac047f89293" }, because: "because8a48e51b-1a0a-493e-b07b-dd4d7c1ca2a2")
✅ HaveContent_Bytes_FullContent_ShouldNotThrow(bytes: [104, 230, 109], fileName: "fileName141f65cb-4f23-4bdb-b502-144ed73549da")
✅ HaveContent_Bytes_Null_ShouldThrow(bytes: [110, 40, 112], because: "because20fa7b5d-4aa9-4ce7-804f-bd05c9f17a53")
✅ HaveContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [72, 34, 124], fileName: "fileName51cc4e7b-9217-45b5-9ee8-4e0d3bb1dd19", because: "because98aa5f38-b275-4752-8cef-180c368602af")
✅ HaveContent_FullContent_ShouldNotThrow(content: "content752050af-a832-4e62-8fbd-013707d74417", fileName: "fileName57aaf080-5d0a-4fa7-9c52-e5ec6be5288e")
✅ HaveContent_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: "content3d618e98-0670-4a58-9a42-cfc8e35c79ee", fileName: "fileName50a4c703-d01f-4278-ad29-2354e291045c")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "contente6387838-f1af-4002-86f0-7ceea6931f4d", fileName: "fileNamea5d77959-0657-4c81-9d3b-1d694d72ec47", because: "becaused1da77c1-3971-4cbb-92ed-ae811405c8ba")
✅ HaveContent_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: "contentc76a69fc-2d86-41c9-a099-1be6f7bfd4fb", fileName: "fileName824d4f20-8053-4699-b455-2cf0297758d1", because: "because4d098579-9043-4731-8c8c-bdf58c1668f0")
✅ HaveContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content4308a2cc-7214-4df1-a423-668e4a95e481", fileName: "fileName79d75894-1ec9-40f8-82e5-35b6025c6287")
✅ HaveContent_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: "contenta5e180ec-7617-4202-87c7-3431809592b9", fileName: "fileNameba85d86e-8cd4-4c55-843b-d1e9b2bf71a5")
✅ HaveContent_StringContent_Null_ShouldThrow(content: "content7fc81527-c697-4d27-b00a-66b48e9b5bdc", because: "because664b8a38-e4f0-4d5c-b285-847f23601869")
✅ HaveContent_StringContent_WithEncoding_Null_ShouldThrow(encoding: UTF8EncodingSealed { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content2512477c-2dd6-4ad5-9451-b6a2acf78156", because: "because0b3fd912-6224-46ee-9fb1-121771b7cf7e")
✅ HaveContent_WithEncodingMismatch_ShouldThrow(fileName: "fileNameb5bf65ee-ed7e-437a-8f64-7e60b709f231", because: "because85179445-14ce-4858-b501-05d191269137")
✅ NotBeReadOnly_Null_ShouldThrow(because: "because2994bfee-c44a-4012-9153-64971f64b6e6")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contented5cf2e8-9ba6-46e3-aae4-df28d9ab8ff7", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name7349c101-49de-4e3b-b487-2160e0f632b3" }, because: "because8d1eb22c-cef4-44bc-b524-bb2bbd330194")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content02786287-3c58-44a0-ad16-25fe8e6be7a4", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name360f1ef2-9e09-49ee-b72b-ad0df117cb8b" })
✅ NotHaveAttribute_Null_ShouldThrow(because: "because2d211053-78a1-4922-8f4d-e3af42ed2f69")
✅ NotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content136755bc-d2eb-4dbb-b3b5-da447b0bcb90", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name3237c4f6-251c-4f4c-85ff-d812e61b3c41" }, because: "because50873eee-26d3-4bda-b977-c7489d1e3ccd")
✅ NotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content2cdc8939-c404-487b-a796-8291dad83dd2", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name69f37d19-f42c-4286-906d-37db4bac7208" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path1944fb6fb-ff08-4b16-b188-c06e57af3500", path2: "path2b31ef7b7-ff4c-4403-a924-8320ec7778cf")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1105493db-e781-4cfd-b461-69b571b6b9e0", path2: "path2149af489-2251-4d14-9653-a72b041924c2")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becausea89d09f4-b036-4043-9179-6098b961852a")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becauseb9925ffc-112e-4a51-b123-ee9b235422c4")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "path8e771a9c-44ff-4e69-8a31-ae8b1641446e")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "pathc64d7ba8-e3e5-4730-95fa-2d6adfa1f16c", because: "because37a13af0-cf4f-4258-8cbf-70640f878902")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path17d145df6-c24e-4ee9-821d-7111cbef69b2", path2: "path23293922a-cdc3-4909-ae16-f0c4ba11cc8e")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1ee640bb6-c192-4548-bf66-321b28e0f09f", path2: "path2d3571574-c4c4-4660-a50c-98689c7c052f")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because2ad4ef6c-f131-41ae-9b62-ce0faec53a36")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "becausef062c771-7c07-41b7-8ed2-8b6ee99802bf")
✅ HaveFile_WithFile_ShouldNotThrow(path: "path67f7846b-565b-49a2-ab90-c09be72d5f51")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path4cd41500-10c7-428b-9f2c-0983299e804a", because: "becausec773b924-6243-4103-90c7-d5feced38d2e")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path18c6f9075-65ef-4515-904f-38c5ed88301a", path2: "path23603b9a7-0ca0-49d4-8158-5588db60653a")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path1f5c55c76-6c87-450e-9273-de2fa258a790", path2: "path2ac629961-11b7-441e-bde1-358bb51db1a8")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because2f596967-cdc2-4d0e-938c-013e381e1644")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "because83d5eb84-fb01-4000-af40-72dbcc079ec8")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "path8fa530d4-eea4-4dca-92b9-ad1f4c97a537", because: "because1a47d5bc-ffb3-4c85-8c9b-12c78b6a1190")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "patha9c91260-0212-4151-ab8f-3d2083510af2")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1c4e4613a-8a49-4011-8500-699b9e030361", path2: "path261acbd4e-e1e2-47a4-bf46-cc190a705860")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path130af828e-0100-4255-9447-7969107ff285", path2: "path2f252e5b9-6d1c-4af9-91bc-9c61089e75d2")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because8d3803f4-57a5-463d-81e8-5cac59621c34")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because2e57b9e6-225a-4f88-a8b6-4597754f9cbd")
✅ NotHaveFile_WithFile_ShouldThrow(path: "path87f4e470-7e08-4b6d-a499-af8935fb5ec4", because: "becauseeb03d42d-da0d-4c53-a04d-a57a2a5255d2")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "path22d70dae-7332-4582-9a1a-ab84fad8a129")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests

✅ Exist_ForDirectoryInfo_Null_ShouldThrow(because: "because285a8d94-548c-45a3-b3a3-75d0537bded7")
✅ Exist_ForDirectoryInfo_WithCorrectDirectory_ShouldNotThrow(directoryName: "directoryName345b6176-4cd5-498b-8472-e2f637a3ac06")
✅ Exist_ForDirectoryInfo_WithoutCorrectDirectory_ShouldThrow(directoryName: "directoryNameb59b1cef-cccd-4da2-873f-b55167b23e8c", because: "because909ce21a-c93b-4d27-bca0-3387acfb2110")
✅ Exist_ForDirectoryInfo_WithSameFile_ShouldThrow(fileName: "fileName8418f84d-a7f1-49ab-95b6-599f193b8ef9", because: "becauseca603f81-2f5d-4cb0-a0f9-c3b23994191c")
✅ Exist_ForFileInfo_Null_ShouldThrow(because: "because1f943ec9-9055-4783-baf0-aaa230ebca8b")
✅ Exist_ForFileInfo_WithCorrectFile_ShouldNotThrow(fileName: "fileNameac4bbc9a-465b-4915-a058-fc408eb5e02c")
✅ Exist_ForFileInfo_WithoutCorrectFile_ShouldThrow(fileName: "fileName6875c9c4-f821-4ae1-a00d-d84c2889d05d", because: "because63c151b6-65eb-4776-83f6-ee5809ae5444")
✅ Exist_ForFileInfo_WithSameDirectory_ShouldThrow(fileName: "fileName9bdded9e-3e3d-4754-bf60-602b9567a66e", because: "because1d3c2681-b61c-4290-9f6e-9d1ab1f78da6")

✅ Testably.Abstractions.FluentAssertions.Tests.MatchTests

✅ ImplicitCast_FromNull_ShouldUseEmptyString(pattern: "")
✅ ImplicitCast_FromNull_ShouldUseEmptyString(pattern: null)
✅ 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)
✅ Wildcard_WithIgnoreCase_ShouldConsiderFlag(ignoreCase: False)
✅ Wildcard_WithIgnoreCase_ShouldConsiderFlag(ignoreCase: True)