Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update README.md #43

Merged
merged 2 commits into from
Sep 1, 2023

Merge branch 'main' into vbreuss-patch-1

438a0ea
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

docs: update README.md #43

Merge branch 'main' into vbreuss-patch-1
438a0ea
Select commit
Loading
Failed to load commit list.
GitHub Actions / MacOS Tests succeeded Sep 1, 2023 in 1s

MacOS Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
_Mac-1693558795291_2023-09-01_09_05_20.trx 130✅ 4s
_Mac-1693558795291_2023-09-01_09_05_24.trx 130✅ 3s

✅ _Mac-1693558795291_2023-09-01_09_05_20.trx

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

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 22✅ 523ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 22✅ 58ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 17✅ 436ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 24✅ 75ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 50ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests 8✅ 559ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 13✅ 8ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasDirectoriesMatching_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryName4142b461-9e65-4115-85de-963b0e75ea2d", directoryNamePrefix: "directoryNamePrefix68325d79-8aac-46f3-9739-15d1d25"···, because: "because12f5a752-1a73-45ec-b673-695afa62d254")
✅ HasDirectoriesMatching_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName1b5cfd25-17c7-4a7e-b438-3113b177b0d3", directoryNamePrefix: "directoryNamePrefix5ea49bd2-a885-4f17-88b9-004c8a1"···, because: "because2e5fc529-a739-4196-96ab-923a88270432")
✅ HasDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because955c5c3e-b573-4adc-b762-c82ec06b6c8b")
✅ HasDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because82fb1d48-79d7-4c45-b655-cf42e26cfbba")
✅ HasDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName57ef1b55-5b03-4629-9b68-be4a32152a1e", subdirectoryName: "subdirectoryNamed3b85499-1376-4762-8ba2-68c14813b7"···)
✅ HasDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryNamea6f25cdf-ecbb-4edc-ba8e-13ea1d37bcea", subdirectoryName: "subdirectoryNameb7d13bed-541e-4dd4-841d-9a693a83e2"···, because: "because0832de9f-385b-4393-9889-8e40183a189c")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becauseb0d58491-c93b-4578-a5c7-f6242313091b")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because95e8da13-9c1e-4adc-83fc-a44727087618")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName279b088f-a554-474f-8a8c-d56cc891c593", fileName: "fileName2358deb7-2e46-4181-89c8-20b5aeffb100")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamef34b2a3b-dc99-4703-b588-c89e2684397e", fileName: "fileName5091d8b5-1960-49d2-b8dc-56025c0d4e79", because: "because2c329721-a7a7-49df-95f6-c8e9d9161d3b")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryNamef43aab23-c60a-4300-a7c0-7f1e513e1f75", fileNamePrefix: "fileNamePrefixfdc7662a-fcc7-49ec-afac-dfe93ae53d7d", because: "becauseb999767f-294c-4373-9e8c-3b541f4f8813")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName204de329-ddd3-4179-bc9a-16237a5c056e", fileNamePrefix: "fileNamePrefix7fb05611-9326-4ab4-a9f4-fe858952ab84", because: "because54294ae1-8a9a-4ee3-90ac-d622cbdf1336")
✅ HasSingleDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "becauseff55dbb0-8550-4041-ace1-41e351841943")
✅ HasSingleDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because35f5dc97-04b4-453a-82c3-852c312a7171")
✅ HasSingleDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName2975b445-cb73-4feb-8c23-1659a669d6eb", subdirectoryName: "subdirectoryNameb4833fbb-0538-4539-91f5-da02baf66e"···)
✅ HasSingleDirectoryMatching_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryName66e81cfc-2ec4-4898-a5f0-81258576da9e", subdirectoryName: "subdirectoryName95f4bcd5-7ec9-4647-ad29-91c1d4faa1"···, because: "becausee989723a-81c6-404d-8a57-482a56fa8540")
✅ HasSingleDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName57e7cbe4-e7ec-4e5a-934c-e3a226eb1332", subdirectoryName: "subdirectoryName77968e15-c9f0-4c5d-ada5-f7095cf54e"···, because: "because4c4e6804-951b-4375-b77c-02d6b07ef4de")
✅ HasSingleFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becausef78133ac-9af4-4967-a50d-b9a39792c7f9")
✅ HasSingleFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becauseffbfaa6b-e782-4675-a9ae-b699844cf401")
✅ HasSingleFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName7de2e32a-e135-411b-99b2-b6124a4c84bf", fileName: "fileNamef7edec79-352c-4432-b372-378bbf1be266")
✅ HasSingleFileMatching_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryName64aa0d36-f6af-4591-ac62-cc587a585c77", fileName: "fileName8db5cdd6-1001-422d-9f8d-f8bfa8323404", because: "because22b32cab-27a0-485a-8e9f-7612740a6a5f")
✅ HasSingleFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName588bb63f-ddab-4acd-bc2d-eeae24e74715", fileName: "fileName8ef06170-c0a2-46c8-b1cb-00f63db20878", because: "because7b45c1fd-81b4-4735-ba9f-fc08c3a6af91")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "becauseacfcb760-39a3-4c27-8894-04482b71bc1d")
✅ HaveDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because8ebb8b80-7d6c-41db-850d-a3afc94dac66")
✅ HaveDirectoryMatching_Null_ShouldThrow(because: "becaused5dd51a5-b1ce-4394-a179-72e83c5f6073")
✅ HaveDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryNamec6e3d61e-ea56-4e7e-99ce-78ee653e7bb8", subdirectoryName: "subdirectoryName49f74968-fa02-4ea9-b839-5c95d30832"···)
✅ HaveDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryNameee529766-20f8-4cf1-9977-c7aefc0fccd7", subdirectoryName: "subdirectoryName0c8b3710-8f04-4d96-9ce2-b8d2b6c1ae"···, because: "because14834a48-4ea2-4e60-8499-b18c90af93ea")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because156c256b-702a-4039-9dbb-54f62f5b24c2")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because2d5b2210-c992-4ebb-a1cb-35e44f3e17dc")
✅ HaveFileMatching_Null_ShouldThrow(because: "becausecd266dab-4944-448f-a18c-b54a7dee90fb")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName66a2c2f9-ff32-4ac2-8e18-c5f8c658de72", fileName: "fileName02c9448b-466d-4f57-9d6c-5a89f84ba40f")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamee729270b-68ed-4b0e-a137-8ca7ff0bc9c5", fileName: "fileNamedb9b305b-a6e0-4b03-9ff1-640e765f222c", because: "becauseb140b64f-762b-4557-811c-cceb5ceab48c")
✅ HaveSingleDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "becausee2cbd596-52c4-4a7d-abff-1142e46fa93c")
✅ HaveSingleDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "becauseb9eb72df-c94b-4650-9ff9-8e7b17ba8dee")
✅ HaveSingleDirectory_Null_ShouldThrow(because: "because33f4f231-072a-4968-86bd-5df24e3f64fd")
✅ HaveSingleDirectory_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName3a549af0-0172-4093-8e57-514d39a61f6f", subdirectoryName: "subdirectoryNameab8a9120-723c-4f47-a36e-efae971010"···)
✅ HaveSingleDirectory_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryName4f36966f-bb73-4c5a-85a8-21e83196e261", because: "because4ebcabe8-dcd0-430b-a8e2-ea6b8b0d82df")
✅ HaveSingleDirectory_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName29884414-d21f-476b-8459-47480b3e7ecc", subdirectoryName: "subdirectoryNameb1bf822b-ff22-4424-9ddb-526ad31586"···, because: "because60152785-3d05-435d-a63b-a00598b78d0c")
✅ HaveSingleFile_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because29e2c079-18eb-4186-934b-8b97101315fe")
✅ HaveSingleFile_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becausec75222b5-64b2-4a1f-9338-c92f1305113f")
✅ HaveSingleFile_Null_ShouldThrow(because: "because7f933ca7-843f-466d-aa44-03719d7dcec8")
✅ HaveSingleFile_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName782ff0d6-2233-4aec-a749-4d4319a75290", fileName: "fileNamecc2ccc00-17a1-489b-b86d-fc44a2c97a36")
✅ HaveSingleFile_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryName92a1f57f-6dae-4236-8749-f8614267b06b", because: "because13c01050-ade2-46f4-b6a1-9811eed38f1e")
✅ HaveSingleFile_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName29fdba00-0a78-4116-aec3-4cabbecd97fe", fileName: "fileName864d80a7-9c85-4496-a028-d2dac0942c59", because: "becausef3d6323c-cc28-4fea-863d-0461a7c32a77")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ DoesNotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content0b31c89d-1f75-4d42-b91b-920c88bca4ce", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name705a61da-cca2-46c4-b7ec-f5d5d0c26cbf" }, because: "becausec3208114-83aa-432d-a6ff-1bcb341883c8")
✅ DoesNotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content51c18a25-5eaf-42af-aab1-1a6e3cdbb398", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name3cd6061e-581d-48ba-aa3c-3c48ca4cffbf" })
✅ HasAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content0747423a-2308-41ac-9ec9-8579223745f4", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name9ec99583-6853-40ba-b565-52773b46b89e" })
✅ HasAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content462091c6-699c-4be2-bc37-036f154def64", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name6b0bf2a3-227b-436b-a972-ed8d4be5b53d" }, because: "because296d6243-90c0-47f6-b0df-d9fec6d0fdb2")
✅ HasContent_Bytes_FullContent_ShouldNotThrow(bytes: [32, 49, 188], fileName: "fileName4679e642-9d9c-4a9c-a4cf-da2fc6454022")
✅ HasContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [201, 214, 130], fileName: "fileName8b73b4a7-83f4-4588-9239-c69393d365de", because: "because054aa6bb-caeb-44ea-9a79-8440577ae706")
✅ HasContent_FullContent_ShouldNotThrow(content: "content79992228-f754-425b-bf86-fb0ed1f46eff", fileName: "fileNamebff31145-7e5f-4118-a73a-3c3b303c9e5c")
✅ 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: "content3555a01a-fb0e-4d8b-b794-3ff830ef0387", fileName: "fileNamede636632-2c1f-4c9b-a649-20c89ad93cad")
✅ HasContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content8ca7121f-a2d1-4813-b955-d32dd05858af", fileName: "fileName8bea606c-87ce-4a0a-84b2-7f2ca7ff0436", because: "because475b9723-9828-4b9a-bf31-479a6d5cef91")
✅ 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: "content06fd6311-d6e8-46ea-9945-ea45aac499a7", fileName: "fileNamee70f903c-926e-4499-a2a6-f7249f4e70fd", because: "because375b2efa-027e-46ca-b8dc-19ba28fd7141")
✅ HasContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content0b8129ec-4ba5-4703-a792-9ce5e1b7edf8", fileName: "fileName6b68bf58-3702-4a27-a613-298c155d2199")
✅ 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: "contentfad95d8c-0bc2-4a01-bfd4-6b3d37485ade", fileName: "fileName4ad6c460-ae71-40db-bc7f-aeab51217591")
✅ HasContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName0bbdb0df-ade3-4d23-969d-4972f6ff879e", because: "becausefa979530-e96b-4d44-85b3-edb72d75cead")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contenta9a6eba5-56e2-4670-9a2c-661718b0419a", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namea2e0e110-0b76-4e6b-82cf-e8acd890eb40" }, because: "because41e3c256-e84d-4ebc-bead-fedc18d9c690")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content5cacdb62-2524-4e61-8aad-185b8a00413f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name967e7da3-ed7b-4aee-9287-9228893c549f" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content1a106047-f334-48e3-901e-2eec3df2833f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameb3493c0d-ef16-4ec8-8ca8-7aca7d77ed1f" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentb32cb16f-a47c-4e33-8eea-6345b0e34000", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namee70d10c9-b338-4896-accd-1c98515924b3" }, because: "becausecd808162-a404-4005-9111-729020d83bd0")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_Null_ShouldThrow(because: "becausef9e74744-c490-499d-8ff2-783a80ceab14")
✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content1d2de2fe-6488-4b8c-b3ee-729d6ec33ccd", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name7f098630-4cbf-4bd4-99f5-038f5fea6a68" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content49c141f1-3bea-4d33-8b7c-d473417bf77f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name23c09643-615b-4f8f-8e31-e40785d6a5b6" }, because: "becausedbc1dd02-33ef-4ec0-b31a-98f903d31cd3")
✅ HaveAttribute_Null_ShouldThrow(because: "because00c37019-1baa-4f6e-8910-a1b8358f4157")
✅ HaveAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentaffb4bb2-e45d-4aaa-95b4-7d572f70e493", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name40f06cd7-7be6-4a7b-ae39-ad95f5108f78" })
✅ HaveAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content59e87892-5f71-4660-8b64-246fad6b7a27", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameaca7d89f-d175-4595-b221-3836e4eba75f" }, because: "because3c026f64-b3dc-49c8-b4be-1c043d42876f")
✅ HaveContent_Bytes_FullContent_ShouldNotThrow(bytes: [128, 36, 234], fileName: "fileNamed5e6afd9-06ce-4d1d-8f52-6ac18d58ca04")
✅ HaveContent_Bytes_Null_ShouldThrow(bytes: [249, 94, 57], because: "because2738703a-81e7-4896-bb0d-1c097736784b")
✅ HaveContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [75, 249, 154], fileName: "fileName5f9e2e54-cf62-46b9-abee-50b4af67ab0a", because: "because446bdc24-665d-4693-b0ea-f18ae6cebc62")
✅ HaveContent_FullContent_ShouldNotThrow(content: "content439cce72-b0cd-4745-b6da-5086c3e364ea", fileName: "fileName2a569700-cf4a-4cec-8904-e4628953085e")
✅ 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: "content1d71d80b-1cc5-47ef-9f7c-f662cbb1cf91", fileName: "fileNamee434650b-bf03-4446-b14a-373031db1527")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content130362a5-c312-451e-ae4a-7e10c85db5e7", fileName: "fileName0b277d28-7aac-41de-9838-b8a1eedd517a", because: "because9ebc6231-cd8b-4233-96c1-afb3db2c2a07")
✅ 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: "content3183241c-2b7f-4d43-8c96-ea0b866b0069", fileName: "fileNamed00e661b-3c25-41b3-adf7-3fc3350bd9de", because: "because75de5fc4-bc76-44b8-9d0f-221e5eb3038a")
✅ HaveContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content90a69f6e-ec93-4dab-9601-e5a6544f6efa", fileName: "fileName69ca8d04-88b6-4989-9135-6795a8bd22fd")
✅ 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: "content04b46465-5aa7-4007-b165-012c41f0bea5", fileName: "fileName30272e76-93d2-40db-9717-e3c557a58d4c")
✅ HaveContent_StringContent_Null_ShouldThrow(content: "contentf7531b5b-5354-4c86-a925-46e2472d40b6", because: "because09268b41-8d65-488c-a4a1-442703763e9c")
✅ 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: "content16b3e98c-f8a4-4057-bd93-8bb97bad6806", because: "because3ef1d3ad-7b0a-4f87-a66c-a0ec6b1e4b0e")
✅ HaveContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName7d188379-a1d2-4bf1-91c1-7e7b09a37adb", because: "becauseaac9eed0-d215-4791-9acf-cb3553b4a585")
✅ NotBeReadOnly_Null_ShouldThrow(because: "becausea58b8e4f-4c48-40d1-bc5b-b9166696b5ac")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contente2a4e448-b7c6-4fe9-ac6b-5ad3437be547", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name62d98dd4-e80f-4164-b62b-2dd17234f137" }, because: "becausea2e38bf0-9c63-42d8-810e-1e6280ec6b91")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content5fdbd3aa-a90d-43c8-878f-95e878254411", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name3aeae89c-217a-4aa2-be1c-10c632fbb560" })
✅ NotHaveAttribute_Null_ShouldThrow(because: "becausef24855b3-ef14-49e4-8275-36e183d4d33b")
✅ NotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content5d164216-3944-426c-b67f-ede1bb169446", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namef4bfdc8b-ccf7-4c71-8576-87d4c2e6babf" }, because: "because761ce71f-fe10-4cf7-9616-a306e52c2f7c")
✅ NotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content87d85962-8db9-4bd8-a477-90af67b724ce", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name5e976ff3-e49e-45a3-8e24-7112decd6da6" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path17eb5b48d-82e3-4967-bd83-4ecee6bc2c35", path2: "path274122b6d-0f51-4b13-9989-15867387dbb5")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1f2a17dff-abb3-4b05-ab0e-51e08352052a", path2: "path2bfdea823-2acc-4ab6-988a-198a0889c32a")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because96bb7d3e-91b6-46b5-8d8f-9765122b69f5")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becauseac4fb7d2-6028-4682-947a-9defe9dc4f0b")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "pathc738e886-0b87-4375-b571-b26fa247ef8f")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "path26cb269c-e5df-4098-8677-f6f18c8f9d50", because: "because9c301e4a-82dd-4ce3-bf9a-bcf5b92321b0")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path1ab4c70d0-1ed4-42c8-a8db-ebb3ac60f97d", path2: "path2b493c834-a9c3-4380-bb75-9c62a7142e7b")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1a309c88e-cbde-4013-922b-f9685d035cc1", path2: "path2f6b08c3f-af5e-402e-b0e6-ab2764dfffd8")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because2d803a83-6419-4a5f-814f-0d3ded1e3d4c")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "becausef8ea777c-e870-4de3-9339-e5cd1a52ae3c")
✅ HaveFile_WithFile_ShouldNotThrow(path: "path117da37c-5eea-4b6a-b96c-c148437406ce")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path465e443b-0929-4efb-8916-550a7c90c35a", because: "because37c08a5d-0a37-4f50-bf3c-5fef02c289b3")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1ebc8396a-7957-4447-8df3-4f39601ca24f", path2: "path20d0954ef-f135-48c6-9795-64c4e32437aa")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path13ac2e4cb-6973-4c7b-a06c-81155f039e54", path2: "path233a00ba2-722a-468c-8f4f-feb59484229a")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becausedc1110f0-a050-46b1-98ed-795eed3e04e5")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becausea8cd7740-06a7-42e0-95d2-d17e3c1ae00d")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "path4cfd12d4-5e11-49af-ad3a-ba7aafac98d6", because: "because5268f0fc-a780-46ae-93c4-62d2d16d2390")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path0c0296a6-abf2-4b54-8edf-ab299c97553d")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1c4766822-7d4d-4d75-b604-eef8cd3a0c55", path2: "path25ff89e0f-4c11-45fa-8fc0-f3dec366f8ad")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path1efc311d9-abcf-4549-92b5-0b0a45e599d8", path2: "path2046bafcb-206d-4e8c-aef0-9a0eb48ab537")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because42cb597e-d219-4844-b669-5760a52949a6")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because9ad05ce6-26a9-4947-add6-579992c9a6f3")
✅ NotHaveFile_WithFile_ShouldThrow(path: "pathadd7115b-d4f8-43ef-ad27-454ef722d6a4", because: "because926d4de6-70bb-47be-9949-a713b01ee0ea")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "pathd9967d80-ec8d-4ee1-aaf8-69494d67dbd6")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests

✅ Exist_ForDirectoryInfo_Null_ShouldThrow(because: "because4b436fda-5277-4c09-8fb5-deed68afc0e4")
✅ Exist_ForDirectoryInfo_WithCorrectDirectory_ShouldNotThrow(directoryName: "directoryNamef3d99fd2-4296-41ba-a379-17b4ccb7d525")
✅ Exist_ForDirectoryInfo_WithoutCorrectDirectory_ShouldThrow(directoryName: "directoryName4d559cde-88d2-4450-b612-d894a204ea4b", because: "because83ae8c17-2e82-4ac7-a694-cad7d65ee96a")
✅ Exist_ForDirectoryInfo_WithSameFile_ShouldThrow(fileName: "fileName73366b78-c52a-4c11-acd6-5c7b378e8a5d", because: "because900107f8-1522-4a6a-ba7d-80e91f445515")
✅ Exist_ForFileInfo_Null_ShouldThrow(because: "because4c5ce227-73c7-4cbe-8d81-8161c2bea2ab")
✅ Exist_ForFileInfo_WithCorrectFile_ShouldNotThrow(fileName: "fileName1be200cc-0c5d-4ff8-8fc3-7ec50e3b3073")
✅ Exist_ForFileInfo_WithoutCorrectFile_ShouldThrow(fileName: "fileNamedd6226e6-c7bd-4492-8115-2c384972d680", because: "because0cebf87f-c669-43ba-87b9-e0dc43d1ca35")
✅ Exist_ForFileInfo_WithSameDirectory_ShouldThrow(fileName: "fileNamea05b92fc-8544-4def-8a5e-1dc80293321d", because: "because1f99666a-5bdf-43ab-badf-4a5d1fdc5031")

✅ 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-1693558795291_2023-09-01_09_05_24.trx

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

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 22✅ 100ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 22✅ 328ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 17✅ 269ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 24✅ 300ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 53ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests 8✅ 52ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 13✅ 44ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasDirectoriesMatching_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryNameaa3c9bd4-ede5-4820-9eee-411ee4ad217c", directoryNamePrefix: "directoryNamePrefix2aff485c-e701-45cd-b4ad-027ef3e"···, because: "because38777f31-6189-4fc2-baaa-43086669fa80")
✅ HasDirectoriesMatching_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryNamecd193f35-136c-4402-a6a0-a6ab39237cb5", directoryNamePrefix: "directoryNamePrefixa88637eb-5d01-4012-94ca-c59af38"···, because: "becausea233383f-89e2-431a-bcd8-75f3e643c12e")
✅ HasDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because5d4144dc-6837-4f28-90d8-00f00b6c9f31")
✅ HasDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "becauseb7781346-ed93-4afe-a855-852e9d9690a1")
✅ HasDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName6b9c9a25-0a50-4232-a086-be244b305287", subdirectoryName: "subdirectoryNamecdd2acc6-7d7f-455b-af1f-8301ae18b2"···)
✅ HasDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryNameccd97eb1-84b6-4709-937a-53c1e4bb764c", subdirectoryName: "subdirectoryNamed29b0982-3116-4a09-8ae9-6e91b3b832"···, because: "because664b558e-b724-4b98-939a-008365eeafd5")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because9740db0c-818d-49ad-9fbd-9cdd299540ca")
✅ HasFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because9172abb8-61b6-43ae-a172-7a0479ca7f35")
✅ HasFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName60e67219-00be-4bb6-a9c2-cfb592d93023", fileName: "fileName3821f25e-624b-46ae-a189-b8c1d025bb5f")
✅ HasFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName3d69946d-a91d-463f-be57-3ba5a05bafbe", fileName: "fileName3e15e413-cac7-4457-a9b1-a3807a61131b", because: "becauseb85d7a7e-1b99-4393-ac81-0bae04ef0f5a")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryNamecd63e6a4-c377-4abb-ac53-bd02f441d19a", fileNamePrefix: "fileNamePrefixf2a9cb4d-4624-4e45-b308-38ea030824d9", because: "becauseb8f2f2b7-e9eb-4327-a6e2-25e754e01224")
✅ HasFilesMatching_WithoutTooLittleFiles_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryNamef82b5db4-dd69-439e-85f2-6a80eda5a494", fileNamePrefix: "fileNamePrefixd6e27277-bf17-499f-a5f9-e9f3731036ed", because: "becausee4819c23-3987-4f6e-96dd-6046386dae36")
✅ HasSingleDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because0514f8dc-5450-485d-b031-3475f9aeaa82")
✅ HasSingleDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "becaused686fc4f-2eb8-44da-9945-eab876bc4d88")
✅ HasSingleDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryNamec0fa9f2b-180c-49b3-93bc-d5c618f3694a", subdirectoryName: "subdirectoryNamebcf6c2b9-0407-40d3-a7d3-bae5fc4250"···)
✅ HasSingleDirectoryMatching_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryName1f801750-c2f8-4a18-ae19-8f99d4cc8b34", subdirectoryName: "subdirectoryName03a9e8f3-e25e-4233-b803-3c1e0c891f"···, because: "becausef30aec6f-a1f7-4532-b9a0-768cdcc6e3ac")
✅ HasSingleDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName976c67c6-8c31-4976-b1d0-8d2aa71578fb", subdirectoryName: "subdirectoryName38c29db7-8da2-4ef4-a34c-0922077d36"···, because: "because09d9aecb-edf0-4d6f-9309-3657e5318c7e")
✅ HasSingleFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because8ba00dc5-a32a-430a-98de-6bf4e27c6bb1")
✅ HasSingleFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "becauseb12b2742-ae2c-42c7-880b-28c5fb153a06")
✅ HasSingleFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName8664cb7a-3de1-4c05-94ac-425c92419733", fileName: "fileNamec1221013-a041-4dd3-8203-f525f6340dd9")
✅ HasSingleFileMatching_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryName156b0c0e-8d18-423a-b663-fba5a5dd5a8d", fileName: "fileName6cffa53d-e2b3-4648-bd85-a062ee717f59", because: "because20df9706-9378-4275-b8c8-93cbcaa6c5ae")
✅ HasSingleFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName5e07b674-11cd-4e10-9e74-dfab86386a05", fileName: "fileName5572c1e5-4ad6-454e-8af8-1703995236a5", because: "because57483a0f-7d08-4c66-9545-09d579635c7d")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because50ff496d-dda9-4a26-9440-5985c1f8141d")
✅ HaveDirectoryMatching_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because7848bb15-212f-4e5a-a264-1b7ffbb8e805")
✅ HaveDirectoryMatching_Null_ShouldThrow(because: "because751c609c-0dd3-4b06-a8a3-015a4089c664")
✅ HaveDirectoryMatching_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryNamea1cf6e62-e863-4499-ae39-4a1fb36d29e3", subdirectoryName: "subdirectoryName5c989212-8ac1-44a9-9c12-9c59895cf5"···)
✅ HaveDirectoryMatching_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryNamef956038d-3646-48df-b136-cd2c66978d46", subdirectoryName: "subdirectoryName38fd5c85-f88a-4502-8048-61e8f77b5f"···, because: "because444be260-1cd7-4e38-88ad-9c3a85f96bb5")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becauseac9176a9-9e45-4339-9d60-44ac2dd8443e")
✅ HaveFileMatching_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because64a14521-33cc-4b96-9a79-33a5f9f312e6")
✅ HaveFileMatching_Null_ShouldThrow(because: "becausecf5c97a5-9cdb-4199-8697-166a9fbf8d54")
✅ HaveFileMatching_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName7659f124-a9e0-45a0-b28c-93a882c983cd", fileName: "fileNamede8756b4-eec3-45e8-9016-784191944a6d")
✅ HaveFileMatching_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName13c41b12-048a-4655-9a94-aede1d86a0ba", fileName: "fileName2a157ccc-3681-4a50-99c0-d1c4b76c0110", because: "because05add6f6-c42f-4091-996c-69f4a952290e")
✅ HaveSingleDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because12f1b3ea-0aa1-4934-81c2-bfefa22379dc")
✅ HaveSingleDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because3f50a6eb-62b6-434a-b8d8-e2e1a00bebf6")
✅ HaveSingleDirectory_Null_ShouldThrow(because: "because8d6e6e1f-98c9-448a-b393-adc554ae70c3")
✅ HaveSingleDirectory_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName5f631d22-ebd1-4fe5-9a22-65d303b1af5a", subdirectoryName: "subdirectoryNamecfabd8c5-ea07-4d20-bfb4-d73468c6d6"···)
✅ HaveSingleDirectory_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryNamef760baab-f50a-4216-84e0-7478d6f6bd83", because: "because6efcb95c-fb17-4b06-ad38-9f335680a8dd")
✅ HaveSingleDirectory_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName7c6a96ba-36f9-4770-aa0f-c9455d98b4f4", subdirectoryName: "subdirectoryNamee913e81a-ec70-445b-87d7-70b7c176bc"···, because: "because7b127a23-7752-4df4-919b-9921417dea74")
✅ HaveSingleFile_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because245be6cb-5c2e-4a60-bfac-90b1d594f8f8")
✅ HaveSingleFile_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because89bc9bc6-d1b4-400b-ab32-e85432bd13ba")
✅ HaveSingleFile_Null_ShouldThrow(because: "because728c443b-9b5b-4e26-a817-4a7ebc709be8")
✅ HaveSingleFile_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNameef974972-cffb-424c-b0ee-4a496c8d7fcf", fileName: "fileNamef65748a3-8395-4345-981e-4bdc9ad7992a")
✅ HaveSingleFile_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryNamee3188e13-2cc2-4974-859d-fb5b9a3fe149", because: "because8fd2a06c-a33a-4737-aed4-04f894d3f26f")
✅ HaveSingleFile_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamea844099d-7d0d-4ff2-a958-eaa9926568e0", fileName: "fileNamefdd2cff1-c95e-47bf-bef4-99959258ec58", because: "because853efeb2-eb4f-4dcc-93d2-9b6e08210bcb")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ DoesNotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentb3c3aa0e-2f80-42c3-b242-3775e48656af", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namef58046d1-3683-4359-9ebc-85d8dd2ccf99" }, because: "because76bd888e-04b6-4a5c-8add-2b7abd7d2137")
✅ DoesNotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content7a157b26-b75d-40bf-805b-28e4f9db18f1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name342f74c4-ba7b-4d1e-9bd4-16300d7da527" })
✅ HasAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content5c29975f-eb41-44b4-b41d-02fdaa3cbbf1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "named5209d80-adae-4f5b-8f24-17b2853778c9" })
✅ HasAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content72149490-e4fc-45bc-8124-9e32119b1a2f", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name25133a01-4d2b-47c2-877d-4dda21e73c5c" }, because: "becausec6094048-cb74-4728-b686-5ef0afc21eec")
✅ HasContent_Bytes_FullContent_ShouldNotThrow(bytes: [254, 18, 186], fileName: "fileName139fad40-0a12-4c3d-9424-007bff8c5450")
✅ HasContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [17, 58, 167], fileName: "fileNameb9b3087e-ae8b-4d65-baa4-48b2b96afc68", because: "because30a17a04-f067-4dcb-beff-838d03089829")
✅ HasContent_FullContent_ShouldNotThrow(content: "contentbe1be124-bd0e-4eba-9ea0-2b799af794c2", fileName: "fileNamef70fa56d-3845-4eb4-975d-84d66df27b2d")
✅ 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: "content7b73e0ba-05d2-49f3-9b11-9cabf01fd583", fileName: "fileNamee445ceaf-45d8-4fdf-8774-b374ea35a26c")
✅ HasContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content3960f210-d990-4e65-87e8-1277f223d168", fileName: "fileNamedd07b035-3a24-41b0-910e-f4ba6bbc6134", because: "because25af2b4b-0e74-430a-be23-0fa867b14acf")
✅ 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: "content685ff8a5-c25d-4f51-9502-afbcc653a60d", fileName: "fileName60b9be8b-3b28-4765-b73b-bbf93c9d6f5f", because: "because99f26545-a02d-4517-927e-471ead7b6743")
✅ HasContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentfafbe958-70fe-4ca4-8f65-d27d78360303", fileName: "fileName9c84aa66-19ad-420d-a24e-07762c6b8b54")
✅ 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: "content48457f90-2f0d-4367-8d40-791e06ad7421", fileName: "fileName861c1a66-63c7-4f02-b841-fa82a52312dc")
✅ HasContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName71f0c0b7-31f3-409c-97c6-b5af18b2e9ae", because: "becausecddbfdad-5882-497f-98c5-44d46db087ed")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content3c5681f7-66e8-46d7-b1e5-632d89d4a7d2", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1ce1e169-6241-4305-9fc0-2dec52b2d7e2" }, because: "becausea4b424a9-3363-4254-b96c-f0e5fc149a71")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content2a90079f-856e-400f-b195-585518898155", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameabb3731b-4ed0-4ffe-9740-280fb66814dc" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content2cfb2f28-ce68-419d-8160-41c08bb9aef1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namef7a4b862-1d0d-43a1-89b0-da6ee8c10d44" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content5ba724e1-8d2a-4e1e-9bf1-2218f4aa6092", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name823af5d2-5ee7-47fd-9a65-dab7dff805f0" }, because: "because593cbc15-2d94-4cdd-a528-ecd3908003e5")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_Null_ShouldThrow(because: "because95131a38-b568-41ad-9ed8-a04866571ecf")
✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentec04e6e6-e3ae-43a7-bf60-fd6d209c8f0e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name5edc96a1-20a6-46be-8d9b-f7e413f62268" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content17b15500-68be-4f02-bf94-7f98e7f7e18d", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "named1f3d8f5-2285-4b6c-9520-e9e49861fbdc" }, because: "because899e4d12-a2bc-4507-8b04-4f758467a34e")
✅ HaveAttribute_Null_ShouldThrow(because: "because9555604e-759f-40e2-8a10-413565cdb19d")
✅ HaveAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content3ce75b4c-5fbe-492d-9147-64c0aa57152c", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameb9916a56-b401-45f1-8d6c-8bc62ab0fcb6" })
✅ HaveAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content6f1bbb2f-0003-4cf9-9a1c-97ca13d1add1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namedfee0fff-b692-4bbb-943a-71c039d34c24" }, because: "because78e651d3-f2ed-4601-a3f7-0b3722aa1d37")
✅ HaveContent_Bytes_FullContent_ShouldNotThrow(bytes: [45, 143, 216], fileName: "fileName05ed05d0-9a1d-4f6c-aa37-008775bbaa7b")
✅ HaveContent_Bytes_Null_ShouldThrow(bytes: [77, 19, 223], because: "because0eb8689d-d7fa-4b1a-b4f2-c5d909570c30")
✅ HaveContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [113, 98, 76], fileName: "fileNameda40084d-8b45-421d-bb96-c5566f05ffb2", because: "becausefea92cee-be2d-4b73-a155-26c4efed3ba0")
✅ HaveContent_FullContent_ShouldNotThrow(content: "content94b4316f-7d5a-45c7-ad9b-f1e9bd023bbd", fileName: "fileNameebe36d5a-017e-4753-adc3-1590139f34d7")
✅ 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: "content56096fc5-7f77-4ce1-b177-5f69f1b95a51", fileName: "fileName468e0c33-ac89-4070-ac32-cd61d67f8005")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content2ab7c5f3-c3ba-4207-a761-50e090572bd9", fileName: "fileName3dddd636-e61d-45c8-acbe-972e9099ef0d", because: "becauseb6600a14-772a-488a-8c77-49ea682a48ba")
✅ 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: "content59e5edb6-4e54-4ea4-932e-15302f93f74b", fileName: "fileName88405f34-277d-425c-8a02-78df498b647e", because: "because9150d56c-da2e-4aae-9e62-e74329524fff")
✅ HaveContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "contentc13dc0cc-bed7-45ee-beb4-49ce0c8ac6b3", fileName: "fileName4009866c-8d07-479d-b744-dc6709bdaa1f")
✅ 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: "content643e8af5-9646-420f-a23a-4d5a00b7e292", fileName: "fileName23c1be2a-604a-40b7-b3f5-37330fb4e911")
✅ HaveContent_StringContent_Null_ShouldThrow(content: "content500f0d25-4edf-4b65-9634-82c721f9ee3d", because: "becaused70ea77a-f084-47a6-9d5e-3fbe13f6cd8a")
✅ 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: "contentcf72b326-3890-4815-9a97-43e7f1668dc5", because: "because557934bc-2b47-4dd5-8647-2ff659e6a61d")
✅ HaveContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName667f8255-c974-4ac4-89c0-9dc50fe4e8a5", because: "because06cfba54-69dd-42ef-9a4f-3291135389cc")
✅ NotBeReadOnly_Null_ShouldThrow(because: "becausecdf54d5f-deb8-410b-8d29-12fd42771813")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content81b41b86-c463-4d13-bfc7-3dec264cef4e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name59773b1c-8c9d-4ead-a486-efd7a8a366a2" }, because: "becausedc333412-250e-4cd5-8b46-381dfca01f89")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentb7353790-1585-478d-88b8-299a43e69620", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name3c0dd42b-3ff7-443d-930b-461595512e78" })
✅ NotHaveAttribute_Null_ShouldThrow(because: "becaused0735a7f-f02a-484d-9ba5-5f0aa8483868")
✅ NotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentb4f42c5a-0385-46f5-afb7-5b7a3a145504", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "nameed0c1544-c99d-4370-8f48-9f9b2e468050" }, because: "because299f2209-de33-422c-acf3-6ad4a04c0c5c")
✅ NotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content46bc5d25-0440-43df-93d2-7365e96217c1", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name179e0b1b-a03c-4f59-a431-a87d4c224ff9" })

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path123a89266-c20d-4617-983e-4e8eb3149cd2", path2: "path29bad9cf5-a15e-4196-931a-4348e6b8c5fe")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path18de6cd72-d368-4099-a915-398f68c79a95", path2: "path2bc030af0-b4ef-463f-984b-4f6fabe2b94e")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because9adaab07-adf0-4b3c-a385-7414bfb71711")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becausebf912a80-6599-445a-a10f-d08f286166b5")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "path9b9b582e-3369-42da-9974-f2474bdb57fc")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "pathf5866dfb-628b-42c1-91b9-538eb340d330", because: "because674b1345-e4c3-4827-bba8-92e4b6a76cb9")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path1f5cffab4-df36-41f5-932d-0cbf0ecbc56d", path2: "path2ed6c02f3-f6c7-4aa4-aa8f-4433be7d2823")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1ac7c9d97-fa8d-418e-8ac1-6e1f69ce8108", path2: "path2440bd340-99b3-48f5-8536-9a122f2da13d")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "becausec0759c53-276b-4006-ba62-21f0bf4f4912")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because0ba41e4a-989b-4281-b63f-5027227dfc8b")
✅ HaveFile_WithFile_ShouldNotThrow(path: "path8e7d25c1-ef1a-4e3c-8585-502b9a7d0fec")
✅ HaveFile_WithoutFile_ShouldThrow(path: "path5a010bc1-0ffd-4829-ae67-30cd022792f2", because: "because7928b0c1-d11f-4fc2-9cd1-3dfeb2c15823")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path1499fe4e5-f2d2-448f-97ef-56446a8f69b4", path2: "path2170489d4-9f99-4e12-a93d-311bc093e0c6")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path19d60b56d-4d3b-416b-9284-56fa39e6cf0e", path2: "path29c9c6f52-0394-4896-93e6-f953b822db67")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becauseb29a28bd-0457-4468-93b5-bf8687047364")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becausecbb2fe4a-d0d7-452e-b038-81cf0beb6974")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "path263ce992-ce6e-4346-95de-1282d4baf2b3", because: "because77f4f91a-2bd8-4668-943d-82a8521e02af")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path63357b0a-4827-4470-b092-bfd5a1b252cd")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path167111c27-de2b-45fb-a3a4-deaff3b026be", path2: "path26800a311-0bf2-40cd-b678-12dda132d3a1")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path11bdf4b40-62b0-4593-b115-6d35a1930015", path2: "path297cea7a2-d6fa-41dd-b5eb-2954e04aa824")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because0b22ae0e-0d58-4443-9863-a8f471bbb07b")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "becausea0d135f1-979e-4d48-82d8-42575bbe1f62")
✅ NotHaveFile_WithFile_ShouldThrow(path: "path1c1b5b70-327f-4d46-b239-ba55ad2feb04", because: "becauseb07dc628-2fdf-4205-95e2-2be1f656f229")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "path45dcb8b1-fdef-4ee3-af76-57263bb9304b")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests

✅ Exist_ForDirectoryInfo_Null_ShouldThrow(because: "becauseb4a11431-eb51-4a9c-9967-5f72df2e8958")
✅ Exist_ForDirectoryInfo_WithCorrectDirectory_ShouldNotThrow(directoryName: "directoryName39d26a92-d8ee-4106-a2e5-3346bfd6cb3b")
✅ Exist_ForDirectoryInfo_WithoutCorrectDirectory_ShouldThrow(directoryName: "directoryName1913814e-33f8-4aa6-b337-454f657fd274", because: "because64f136c8-55fc-47e1-bee0-db11fb868868")
✅ Exist_ForDirectoryInfo_WithSameFile_ShouldThrow(fileName: "fileNameab829b0b-edc3-40f2-8bd3-59cba43063ba", because: "because0eeeebfd-0d8d-4fff-84dc-e8196182ea4c")
✅ Exist_ForFileInfo_Null_ShouldThrow(because: "becauseb94c3fce-9107-4237-bcc4-76a74e30d3b0")
✅ Exist_ForFileInfo_WithCorrectFile_ShouldNotThrow(fileName: "fileName8d03b469-f2ec-4a8c-8dda-77910b3119d7")
✅ Exist_ForFileInfo_WithoutCorrectFile_ShouldThrow(fileName: "fileNamefd9b3410-0fee-4fb2-b6e0-1af98adc4244", because: "because2479b982-0add-4c79-8454-d3d25332b564")
✅ Exist_ForFileInfo_WithSameDirectory_ShouldThrow(fileName: "fileName9e0c95dc-01b1-41c9-b1dc-1530e5fda3be", because: "becausede3edafc-4918-4c39-b935-cea281259251")

✅ 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)