Skip to content

feat: add assertions for HasFileShare #79

feat: add assertions for HasFileShare

feat: add assertions for HasFileShare #79

GitHub Actions / .NET Framework Tests succeeded Sep 5, 2023 in 1s

.NET Framework Tests ✅

Tests passed successfully

✅ runneradmin_fv-az931-956_2023-09-05_06_48_36.trx

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

Test suite Passed Failed Skipped Time
Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests 22✅ 419ms
Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests 22✅ 41ms
Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests 39✅ 224ms
Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests 48✅ 115ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests 24✅ 41ms
Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests 8✅ 384ms
Testably.Abstractions.FluentAssertions.Tests.MatchTests 13✅ 14ms

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryAssertionsTests

✅ HasDirectories_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because391d7a9d-7c20-43c5-8276-a72bc292e768")
✅ HasDirectories_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because091dd463-547e-4720-9560-2b83313f73a5")
✅ HasDirectories_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryNameaf6c72da-e675-464d-be2f-91affc1b7740", subdirectoryName: "subdirectoryName383aad8e-f334-4429-b87d-7f61d6d7d7"···)
✅ HasDirectories_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName5532cc81-aa1a-495c-95f9-1a6697c69240", subdirectoryName: "subdirectoryNamea3691130-cbb8-4339-9eaa-2ad18a788b"···, because: "becausedcd0ed54-0fa7-450b-8c9c-2c3eb703621a")
✅ HasDirectories_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryName93473b0a-200f-4f97-9efa-5af9271890cd", directoryNamePrefix: "directoryNamePrefix62e010dd-0bc8-41aa-94e0-6b17d51"···, because: "becauseaaff12e2-f6a7-4a92-a0ff-430ea5f561e8")
✅ HasDirectories_WithoutTooLittleDirectories_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName10269509-2df9-4f7e-b9d5-89c79b4762ca", directoryNamePrefix: "directoryNamePrefix050a2904-62c8-4c0a-b05f-26500d0"···, because: "because3223edb3-4720-4cc8-8711-f9d7ff1104fd")
✅ HasDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because11848067-42fc-48bf-9508-5bdd417b562f")
✅ HasDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because0dfad9d3-9b19-42ee-acd0-935efcc90885")
✅ HasDirectory_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName465b609a-bc86-4969-8f9d-32b49ae4e659", subdirectoryName: "subdirectoryName89eb376d-037f-4ec8-a0a9-aed6feb77d"···)
✅ HasDirectory_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryName72536ca4-36f6-4912-a789-66631fcf4d8d", subdirectoryName: "subdirectoryName873e7f3c-481a-4cc9-9f15-1ad5a66336"···, because: "becausea67e8ab7-cf7b-40ae-ac74-77a87fbea1a1")
✅ HasDirectory_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName447b69c4-44fb-481d-ba87-ded1b094a5e1", subdirectoryName: "subdirectoryName66efe05b-00b7-474b-83fd-1b9431c9f8"···, because: "becausee8786fb3-2a57-40c6-8caf-f1760f26b1cf")
✅ HasFile_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because5a4f9958-be04-4250-844e-120a924d378d")
✅ HasFile_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because48ef7af5-4904-44b9-943c-9cde42b26b0a")
✅ HasFile_WithMatchingFile_ShouldNotThrow(directoryName: "directoryNamee8d33473-a01b-4131-8d5a-c9f62e1f1610", fileName: "fileName14a2e523-00e0-4e85-87d3-a385da2eecef")
✅ HasFile_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryNamef4a49ed1-3c56-470e-874f-29bcbd202684", fileName: "fileNamefb6b8ac9-3730-4ad5-a132-e6f4b354ef18", because: "because310ea117-3406-41ff-81ad-c7cda8b5dcb8")
✅ HasFile_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName0835e127-b9dd-4a4f-b3c9-bc160cc9392e", fileName: "fileName0cfd3112-d4c5-4918-972b-2a174a391319", because: "becausefa9b5a08-6df5-456b-a1a5-5e2514628e5f")
✅ HasFiles_InvalidFileName_ShouldThrow(invalidFileName: "", because: "becausedab375ef-3cd7-408e-a82c-8aa2d51e6ad5")
✅ HasFiles_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because9bf294b7-2663-49ef-87ae-b3e633ce2386")
✅ HasFiles_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName29148d51-7029-4f96-bf06-7e91fb407a01", fileName: "fileName6c963cf3-23eb-40c3-bad6-2791165a41f5")
✅ HasFiles_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNamefd74d553-83ad-4e5d-90e4-2935ddfe7747", fileName: "fileNamefddc7938-2df6-40bc-9ed2-4d3ed940290a", because: "because6ca87121-7820-40b7-b1d0-f4b6e87c1344")
✅ HasFiles_WithoutTooLittleFiles_ShouldThrow(matchingCount: 1, expectedCount: 2, directoryName: "directoryName7ae32276-e9ec-40a2-b2d9-2c0a1c01daff", fileNamePrefix: "fileNamePrefixbac5a395-82d1-48cc-bcb3-7178e0986a72", because: "becausea425eeab-fdfa-47c8-9887-ba461b2dba5e")
✅ HasFiles_WithoutTooLittleFiles_ShouldThrow(matchingCount: 3, expectedCount: 5, directoryName: "directoryName40662d79-949c-4999-a3b7-07a49d2456e3", fileNamePrefix: "fileNamePrefix90e317bd-5604-4cd7-86f1-40a5f4dc6b29", because: "becausec58fc60a-bf54-4c2c-bbce-83c6123275d9")

✅ Testably.Abstractions.FluentAssertions.Tests.DirectoryInfoAssertionsTests

✅ HaveDirectories_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "becauseaecc046b-7e53-4c87-ac90-c354b88ade91")
✅ HaveDirectories_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "because91d0a66f-0b84-4bcb-b72d-9fbbd565ff89")
✅ HaveDirectories_Null_ShouldThrow(because: "becausefc31be11-957e-4602-8c31-53cbb28ea504")
✅ HaveDirectories_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName20bedee9-ec18-4455-ae53-a14c340938f3", subdirectoryName: "subdirectoryNamee7c9f381-98e6-442a-9f10-f6df0fd433"···)
✅ HaveDirectories_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName380d0b9c-9ed0-4a63-88f4-4923141c222f", subdirectoryName: "subdirectoryNameba4c55e8-438a-49db-8810-981a6896e2"···, because: "becauseeadf1324-cdcf-47be-a348-a5bb8e925ad5")
✅ HaveDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: "", because: "because3c44333c-7553-444f-ace2-3fb48f17415d")
✅ HaveDirectory_InvalidDirectoryName_ShouldThrow(invalidDirectoryName: null, because: "becauseb8bb73ea-5492-4043-9d11-e3aa508883e9")
✅ HaveDirectory_Null_ShouldThrow(because: "becausec9f800cd-550e-4300-b53b-eac307cb9b0b")
✅ HaveDirectory_WithMatchingDirectory_ShouldNotThrow(directoryName: "directoryName0ee961f7-8be7-41dc-82e5-489a35c6ead9", subdirectoryName: "subdirectoryNamef0519358-99c9-4a1f-b06c-1e567600a4"···)
✅ HaveDirectory_WithMultipleMatchingDirectory_ShouldThrow(directoryName: "directoryName182d21f8-13b1-45bb-9b0c-7738e55068d3", because: "because7be29a51-d792-469a-a143-2fc60de9d099")
✅ HaveDirectory_WithoutMatchingDirectory_ShouldThrow(directoryName: "directoryName390d9625-213c-4669-9e80-d5e5c4481a30", subdirectoryName: "subdirectoryName2f6af230-77c4-49e8-bb8e-156461b8b6"···, because: "because49c818f5-a3f5-4e76-b787-f0451fd7ef27")
✅ HaveFile_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because8ef4523c-e90a-46c6-960c-904f28465d95")
✅ HaveFile_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because0174a8a5-20a6-4654-a886-f8df89f487a4")
✅ HaveFile_Null_ShouldThrow(because: "becaused58b2b77-8fd1-427c-a52a-709bfe6b6c09")
✅ HaveFile_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName3cb3db91-f5bb-4cb8-8f26-d09d56b634d9", fileName: "fileNamefdedaec4-29bf-4ff6-a1f9-95181a28afd3")
✅ HaveFile_WithMultipleMatchingFile_ShouldThrow(directoryName: "directoryName2c7b3566-de6d-4430-bfec-1474f78ecaa4", because: "because7d084553-5c30-4a34-8794-418db9a1d4c9")
✅ HaveFile_WithoutMatchingFile_ShouldThrow(directoryName: "directoryNameb1d930c0-6ae2-49fb-9ab2-3a50a895cffc", fileName: "fileName4a53edbe-65f3-400d-9c4e-b6611d4587c5", because: "because22252575-9a39-435d-b9f5-fd6acebdd880")
✅ HaveFiles_InvalidFileName_ShouldThrow(invalidFileName: "", because: "because650617d3-b30d-442a-8424-4f6c9fc2c795")
✅ HaveFiles_InvalidFileName_ShouldThrow(invalidFileName: null, because: "because2f968c7b-0660-433a-b5d3-e563c125f443")
✅ HaveFiles_Null_ShouldThrow(because: "becauseebe7a67c-f718-4aa7-ac18-4295df7af6c5")
✅ HaveFiles_WithMatchingFile_ShouldNotThrow(directoryName: "directoryName07be74af-98a2-4e5c-840c-88b5f15982b1", fileName: "fileName6ad0e3f2-aac8-4572-917f-f3969eb4d91d")
✅ HaveFiles_WithoutMatchingFile_ShouldThrow(directoryName: "directoryName632df5bd-a70a-4e81-9d82-a3436dd0e68e", fileName: "fileName47545608-d1ff-46a0-bad3-03fe7b32b6e7", because: "because8aed989b-ca96-41e7-9458-1b7dcebf8040")

✅ Testably.Abstractions.FluentAssertions.Tests.FileAssertionsTests

✅ DoesNotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contente43b16e9-90ef-4e16-84b0-dabbb0641fc8", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namedb7643c8-b5f1-4adc-bc0e-132477da5f0a" }, because: "becausef1b9b3e8-8eb8-497f-be24-90a9e784aeed")
✅ DoesNotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content23fc4b30-024a-4c3d-b8b6-64229614f801", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namec553e97b-4cff-4d8a-a5bb-fb1cda00f8af" })
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Delete, fileName: "fileNameee336ade-f8ae-483c-a568-995bcb3a69d1", because: "because0cb16da5-c9e5-4736-b6f0-f322bc5ee311")
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Inheritable, fileName: "fileNamea9040158-e4ff-4293-9b82-c3ccf099cfd3", because: "because8bcb3d95-c1b9-416f-ad9c-9d39c9ecbc46")
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: None, fileName: "fileName35efcbcc-39e3-4467-987f-74d14f571920", because: "because3544b853-13cf-4a4a-bdaa-b6922c624964")
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Read, fileName: "fileName09fc0953-27d1-489f-a6fd-60010fca5dea", because: "becausea9ce688d-fd94-46f9-a950-eae5e5f62b2b")
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: ReadWrite, fileName: "fileName5c35b10d-bef9-4092-8b6c-fac341ea08f5", because: "because6c22d8b5-41b4-44f1-aa48-475450f6bc25")
✅ DoesNotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Write, fileName: "fileName9c41076d-c3ba-41c6-9d3b-c8f4055a6531", because: "because737f16d2-ef2b-4f1c-ab3b-13b0f39c7d4a")
✅ DoesNotHaveFileShare_WhenLockDoesNotShare_ShouldNotThrow(fileShare: Read, fileName: "fileNameded389b9-aad1-464b-b4d5-c628f4fd12bf", because: "because8e00253c-7d33-4fd8-bbe2-0af61fbd9469")
✅ DoesNotHaveFileShare_WhenLockDoesNotShare_ShouldNotThrow(fileShare: Write, fileName: "fileNameabf3f875-fce5-40a7-90ee-61b47c97da88", because: "because93c2955d-0750-47b6-87ce-0988323727d7")
✅ DoesNotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: Read, fileName: "fileNamee36aaf05-606d-480e-aee5-7034b3566f74", because: "because83e93b8d-c8e6-47fd-b4bf-e47da7b456b8")
✅ DoesNotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: ReadWrite, fileName: "fileName1ed35a73-97af-4031-a80e-de8a2d933779", because: "because85cfe900-ea29-4891-b71c-2c185dc5c431")
✅ DoesNotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: Write, fileName: "fileName0e3f7618-5b67-4dcc-a39b-5572650d9cca", because: "because32511c1e-2a0c-45dd-9c4f-2df2e011b06f")
✅ HasAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentd764e9f5-1444-4d2e-a469-811a28813aa0", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name0b6e6071-8fc8-40db-a693-41229282d0fc" })
✅ HasAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contenta1469448-5646-4a64-8cea-289095ea8ca2", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name1d7db117-0048-43bc-9d8e-4ea8ca10077f" }, because: "because6e49f9eb-a874-4c23-b0d5-dec64f507d2f")
✅ HasContent_Bytes_FullContent_ShouldNotThrow(bytes: [169, 63, 11], fileName: "fileName3fd9b691-2f8c-4b64-a6b5-45b2d7c87a4a")
✅ HasContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [19, 129, 31], fileName: "fileNamee5344806-2f34-45ad-90af-8c33b641fc55", because: "because87db47a1-d532-4582-bdec-a3347cc116e3")
✅ HasContent_FullContent_ShouldNotThrow(content: "content93bc998d-c91f-4e87-922a-de76b8aa8899", fileName: "fileName21294653-590c-449e-ad3e-d3a83f36c81a")
✅ HasContent_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content3b472917-8283-4307-94d1-c0ea8227bbef", fileName: "fileName76444dc2-5eac-4e53-8340-2656d964054f")
✅ HasContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content10d63ec0-ae3f-4090-a50a-37b637bfd273", fileName: "fileNameb3e20bc2-7bd0-4b2d-8ebe-831452f13d7b", because: "becausecb522105-7690-436c-9738-b68aa5a60b7e")
✅ HasContent_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content67f1073d-6ec1-4761-a919-748d11e612fb", fileName: "fileNamef76499e4-584e-492d-8399-0fcecaf96259", because: "because3ee0bf7f-2ac5-426f-ab78-a9564d8241f0")
✅ HasContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content226c4676-42c2-4cdd-8b95-c3f4a5a813f5", fileName: "fileName4e9f684a-2f16-412d-a863-23a8d0337d1a")
✅ HasContent_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "contentb894296c-a62c-4305-883e-bfef7670d4e9", fileName: "fileNamec2dc0876-4067-4c62-af7a-254a78c24d72")
✅ HasContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName10f69711-8964-44c7-8efd-2538ab334d08", because: "because2bf304df-8743-4b81-b95a-783a91e54f2d")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Delete, fileName: "fileNamed64a8a15-896e-4089-a8d9-f5c4f2ef5721")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Inheritable, fileName: "fileName8fcabcae-ea3e-4b5a-842c-4e7034edb046")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: None, fileName: "fileName7ffada71-3e23-4029-9f13-278ae17ccbdd")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Read, fileName: "fileName47fcf6f7-8f4b-48b1-96e6-256fec6eeff5")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: ReadWrite, fileName: "fileName2e7ea13d-e181-4b2f-8810-26e45c915d59")
✅ HasFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Write, fileName: "fileName76e3405e-0a65-43cd-a4a4-4de4e38b9632")
✅ HasFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: Read, fileName: "fileName39b378a3-828e-4a28-8550-885a6bfcea21", because: "because00a91ffa-699c-4154-a2cf-fa9b4c5dfdaa")
✅ HasFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: ReadWrite, fileName: "fileName4e7f4fec-f6a7-4d88-bb52-74f2e378398e", because: "becausebb909b68-a992-4b17-b254-fba8d5f57a91")
✅ HasFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: Write, fileName: "fileName95194298-524e-4d9f-a92b-a689a959cf5c", because: "because1cff62ed-60c6-4611-a14e-d08a796553c8")
✅ HasFileShare_WhenLockSharesFile_ShouldNotThrow(fileShare: Read, fileName: "fileName54f49ff9-100a-4bc3-8b8e-a28853f0e1ed", because: "because46d27dc4-4e85-4d97-b872-a1460e891a62")
✅ HasFileShare_WhenLockSharesFile_ShouldNotThrow(fileShare: Write, fileName: "fileName51111a0a-85ec-4a05-99d8-a3a16a71a2b1", because: "becauseb2e9c4ae-eb48-43f7-806f-0b9339b4741a")
✅ IsNotReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content9b2cc773-a844-4513-a2ab-435c59774419", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "namece3dd046-2669-4462-b5e4-94bcc46af767" }, because: "becauseb98d381f-23ef-45d4-9495-1d8491e9c6d5")
✅ IsNotReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content78b63f34-8ab6-4e35-939e-74e8b85f947b", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name127606ed-e41f-4d78-b302-06f96a339fe1" })
✅ IsReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content534d1746-58c5-4025-967f-cf1349376500", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "named7285d81-ae80-40dc-8159-80a48a6b15ee" })
✅ IsReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content4cffabfc-aa70-439f-bea9-312ffc3d45de", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name0844240a-eb7a-4148-9ff4-2c4ec4648231" }, because: "because72ba3b4e-f533-42d6-9e7f-bde26937979a")

✅ Testably.Abstractions.FluentAssertions.Tests.FileInfoAssertionsTests

✅ BeReadOnly_Null_ShouldThrow(because: "because3d950365-085a-44b6-ab3b-5694a9afc1f7")
✅ BeReadOnly_WithReadOnlyFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content8b7a56c4-3eb0-4106-aa54-343161bdbe25", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name93b81982-40ad-4386-a83a-33202a45f05f" })
✅ BeReadOnly_WithWritableFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentba60813e-21b7-4828-b689-73593df60df3", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name49e70861-881e-4e13-b75c-f8ea94b3d44c" }, because: "becauseb45d8081-8c6b-4838-a479-07f4cc18ea47")
✅ HaveAttribute_Null_ShouldThrow(because: "becausedcf82e2c-fc05-475f-b01f-52a2bbf20bcf")
✅ HaveAttribute_WithAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content9fd92a2a-9f74-48ac-9d63-f62ce4b2f20d", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "named80ce8d4-56ec-4f32-82a4-178ab46c119c" })
✅ HaveAttribute_WithoutAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "contentaa5ea14c-a659-4876-9b4b-0753d10c9567", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name7d8aaa70-5d8d-445f-98e5-16ee1245b912" }, because: "because8e987a54-0364-4b08-8aa6-9efc3e02b75b")
✅ HaveContent_Bytes_FullContent_ShouldNotThrow(bytes: [210, 100, 163], fileName: "fileNamed1276eff-313f-412f-a310-b6901e03ecc2")
✅ HaveContent_Bytes_Null_ShouldThrow(bytes: [210, 100, 163], because: "because547813b4-6388-4520-a371-a859854a99b5")
✅ HaveContent_Bytes_OnlyPartOfContent_ShouldNotThrow(bytes: [182, 207, 239], fileName: "fileNameb13e6aaf-4ec2-431c-9943-b95bfd5e945a", because: "because82374b97-2b44-4a1f-8287-a9ac6af335fb")
✅ HaveContent_FullContent_ShouldNotThrow(content: "content452be897-c707-401d-936c-c6a0f8000e50", fileName: "fileName37f68e09-fba4-4b1d-8377-77844d9c8bbe")
✅ HaveContent_FullContent_WithEncoding_ShouldNotThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content2e374f6a-d61d-4774-b36a-7254e1623d00", fileName: "fileName0f0412e3-4b9e-4539-84ba-77abf28f93e9")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_ShouldThrow(content: "content9a19b31a-af17-4522-9fdb-fcc9c6d4281d", fileName: "fileNamebff487b6-5288-47d3-9ecb-ec4b83b51d96", because: "becausef6901b1d-6e22-4735-ac77-5b6c472d5c96")
✅ HaveContent_OnlyPartOfContentWithoutWildcards_WithEncoding_ShouldThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content17dbc1f7-adef-4e01-856c-032ba197b29f", fileName: "fileName213462d1-03e0-42ac-b7e2-e8950b1e7739", because: "becausecf00a31a-3a33-4501-8922-86f74efb4400")
✅ HaveContent_OnlyPartOfContentWithWildcard_ShouldNotThrow(content: "content061decec-87ec-49c2-b05f-a4df70677de8", fileName: "fileNamecdacc3a3-fed2-4791-b08e-b4b8c537a062")
✅ HaveContent_OnlyPartOfContentWithWildcard_WithEncoding_ShouldNotThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content3d079b99-c1d8-4822-8046-9081b85af4b5", fileName: "fileName8570de82-0dd6-4967-955e-7dbd1e69e08a")
✅ HaveContent_StringContent_Null_ShouldThrow(content: "contentf7e0be10-b866-4577-a195-08332e08b9cd", because: "because8efffd74-a7a8-44af-9eef-b98a3425e1dc")
✅ HaveContent_StringContent_WithEncoding_Null_ShouldThrow(encoding: UTF8Encoding { BodyName = "utf-8", CodePage = 65001, DecoderFallback = DecoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncoderFallback = EncoderReplacementFallback { DefaultString = "�", MaxCharCount = 1 }, EncodingName = "Unicode (UTF-8)", ··· }, content: "content318bed68-0818-4066-abbf-7b6d51066f13", because: "because402adddb-73ac-4982-991c-1229c6b027b7")
✅ HaveContent_WithEncodingMismatch_ShouldThrow(fileName: "fileName8844f110-a98c-455e-8af3-7cca02d1cf0e", because: "becausea17a6943-ad8f-4e99-a7ab-fbff6e0a7282")
✅ HaveFileShare_Null_ShouldThrow(fileShare: None, because: "becausea35c73c8-70ea-414e-84bd-c8bfd38e7af0")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Delete, fileName: "fileName1b71a133-8b7b-4b80-b40e-005438856a68")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Inheritable, fileName: "fileNamede21c455-5a4d-405b-b76e-e9400ffe4c25")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: None, fileName: "fileName72ff42fb-8f91-4aae-a4be-12491f218bf9")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Read, fileName: "fileNamea1da9ee9-694c-4df6-a1e8-5b208bdb717f")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: ReadWrite, fileName: "fileName88cc4ee1-14d6-4903-913c-5640431f92f3")
✅ HaveFileShare_UnlockedFile_ShouldHaveAllFileShares(fileShare: Write, fileName: "fileName2d6074e3-b3c4-4c49-ad06-672b44a06ff2")
✅ HaveFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: Read, fileName: "fileName08c27d2c-82ad-4447-af1e-7d9647ba5c68", because: "because428e1203-96ee-45c0-bf44-f80ff5351ad0")
✅ HaveFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: ReadWrite, fileName: "fileName90f537f9-2852-4220-a0c7-6d2a967de6db", because: "because49a2665a-1e1f-45ee-a6cf-88377fa50d80")
✅ HaveFileShare_WhenLockDoesNotShare_ShouldThrow(fileShare: Write, fileName: "fileName9fc1737e-1c29-4b8c-a26f-15c2d2f6cf86", because: "because16b8d9a8-2557-430d-b023-43a5fb726e80")
✅ HaveFileShare_WhenLockSharesFile_ShouldNotThrow(fileShare: Read, fileName: "fileNamefbf9450d-f89a-4d84-9bc8-70d1391ab8c3", because: "becauseb62f2fd6-868e-428f-9419-5e2c38202bae")
✅ HaveFileShare_WhenLockSharesFile_ShouldNotThrow(fileShare: Write, fileName: "fileNamed2259888-9c0d-4b6c-8e72-95d4751da0d4", because: "because0a8d2209-005c-4b70-b880-697678b15c43")
✅ NotBeReadOnly_Null_ShouldThrow(because: "because7c6a7aff-756a-46da-9bf6-bafc1a1d8132")
✅ NotBeReadOnly_WithReadOnlyFile_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content56878492-5a35-4e1e-ac04-56acb26d3aaa", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name91c9f0e6-908b-4d5b-b571-e78eac067929" }, because: "because4fa0b371-fdd1-478e-935a-66a143bc046c")
✅ NotBeReadOnly_WithWritableFile_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "content13c85313-449a-4b44-ab26-daa9c012701e", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name7ff8f2f9-e897-4176-b365-f481a4f97ed9" })
✅ NotHaveAttribute_Null_ShouldThrow(because: "because5e9c47ad-c5e0-4f9b-a64f-717a6326dd3c")
✅ NotHaveAttribute_WithAttribute_ShouldThrow(fileDescription: FileDescription { Bytes = null, Content = "content4d9df0b3-38d8-42a8-8008-3d6fc1c0ddc2", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name9e90e5d4-a384-4a9a-a812-5eb24fa154fc" }, because: "becausec5903f25-63aa-4b27-a491-f32310bd56aa")
✅ NotHaveAttribute_WithoutAttribute_ShouldNotThrow(fileDescription: FileDescription { Bytes = null, Content = "contentb2fef99f-684a-425f-a333-1d2e115f16ac", IsReadOnly = True, Item = (throws TargetParameterCountException), Name = "name12c4811a-ba5d-4a93-b004-eb9f1fcdb2f4" })
✅ NotHaveFileShare_Null_ShouldThrow(fileShare: None, because: "because90082724-63bd-4081-b32d-eba6590828f2")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Delete, fileName: "fileNamecd7fd391-db80-4271-844a-97464425d132", because: "becausea5b80ec9-cc25-4f87-a79b-9cbfbd5d18ab")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Inheritable, fileName: "fileName606eb31d-ccf1-48d1-a4c1-dea8a975dbde", because: "because633b2bc8-14c5-4edb-ac20-06812a23adc2")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: None, fileName: "fileName4bae0d2f-c871-43b9-b31d-6a97356d40fe", because: "because4ba7d8f8-989c-48cc-b50f-fcac02d50222")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Read, fileName: "fileNamebabe1d32-32b3-4baf-92af-9dab3da74040", because: "becausec51a7839-bfaf-4d2d-834c-a399b7c0a94c")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: ReadWrite, fileName: "fileName728562be-84e5-4ce5-810d-a4282c5e5f44", because: "because975c4c9a-7890-44a1-9cb2-f48ec3c86d86")
✅ NotHaveFileShare_UnlockedFile_ShouldThrow(fileShare: Write, fileName: "fileName943e2258-38e3-4dbe-94e1-49894c55c165", because: "becausea7d01097-62a5-469a-ad6c-6a4d350e586d")
✅ NotHaveFileShare_WhenLockDoesNotShare_ShouldNotThrow(fileShare: Read, fileName: "fileName51663aa8-5b1b-4b72-ae6f-fb5c16085cc8", because: "because7c600ce2-67d4-4515-bb57-07a9824b0201")
✅ NotHaveFileShare_WhenLockDoesNotShare_ShouldNotThrow(fileShare: Write, fileName: "fileNameb0df29b7-b9e9-42ae-9bca-1b26faa607e0", because: "because573cd497-72e5-4536-bac2-e4ff3732485f")
✅ NotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: Read, fileName: "fileName6e612f84-b646-444f-aeb7-45a6a0807928", because: "becauseb4ea5956-c220-47a1-9662-a16b1bd98319")
✅ NotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: ReadWrite, fileName: "fileName991905ad-4e28-499b-961e-06f420442389", because: "because8b685a7d-e8e8-4117-879d-fa420b76a97c")
✅ NotHaveFileShare_WhenLockSharesFile_ShouldThrow(fileShare: Write, fileName: "fileName8caa5674-08d9-4f16-b0c3-db55129ba2a6", because: "because13dd9ead-5b18-44e6-ae7f-47aafb9994ee")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemAssertionsTests

✅ HaveDirectory_And_WithMultipleDirectories_ShouldNotThrow(path1: "path10f6254f6-54a0-4538-8fd3-6712005567c2", path2: "path231e94ddb-e8b3-4603-8e28-96cc93511df0")
✅ HaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path178a5f30e-79e9-4860-a31f-27415301d310", path2: "path2458d0cda-2857-4192-9e1f-005c2b971cd5")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "becaused6a46c44-d912-4209-b501-de3098822659")
✅ HaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "because9f11c008-7fa5-4a4e-be4c-e0c990e4787c")
✅ HaveDirectory_WithDirectory_ShouldNotThrow(path: "path566d74eb-7a07-46ec-9fab-b04136f6af03")
✅ HaveDirectory_WithoutDirectory_ShouldThrow(path: "path36a84e21-89e0-47df-a5b4-1bfb228387ef", because: "becausee2404506-f735-413a-a713-ca3735ebc5d5")
✅ HaveFile_And_WithMultipleFiles_ShouldNotThrow(path1: "path158370f3d-11e7-406f-b0a4-332ca151cda1", path2: "path2c280aafe-f355-4cda-9f61-379d6868f72e")
✅ HaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1ea79bdbc-05d9-4058-89dd-ca8f33dad147", path2: "path2f89980a5-40eb-4ed0-9b42-009f2807728a")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because2a235e38-4490-45c8-8e94-07fa8493022a")
✅ HaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because5cc14542-fcc2-498f-b73a-70d105c89d0d")
✅ HaveFile_WithFile_ShouldNotThrow(path: "pathbf8f5dd4-a27b-4e31-9573-c1157ab3ba49")
✅ HaveFile_WithoutFile_ShouldThrow(path: "pathd11abc75-35ad-4c54-b16d-df7571e92edf", because: "becauseb2801288-e9a5-4fab-add2-b910962f2945")
✅ NotHaveDirectory_And_WithOnlyOneDirectory_ShouldThrow(path1: "path16bfc89c6-97b6-44ac-87f9-fcc4fa30a3f6", path2: "path23b49b52e-2ce8-49e6-b80c-7894aed0f0c4")
✅ NotHaveDirectory_And_WithoutAnyDirectories_ShouldNotThrow(path1: "path165c2449f-5d53-4cf2-9abf-560afcdf53e2", path2: "path2acbcfdfb-7857-4d62-a4cf-303954fcce4a")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: "", because: "because37d37461-1639-4747-a875-949dbf7b4631")
✅ NotHaveDirectory_InvalidPath_ShouldThrow(invalidPath: null, because: "becauseff7d80a0-0398-49b7-87e8-233dce6f216f")
✅ NotHaveDirectory_WithDirectory_ShouldThrow(path: "path0631bf69-7fc0-4840-8bdf-b205d85ec130", because: "because103dac09-f04d-4853-9ca9-68727efab345")
✅ NotHaveDirectory_WithoutDirectory_ShouldNotThrow(path: "path5d80b6db-e9ac-4ede-bd81-6abedf17e830")
✅ NotHaveFile_And_WithOnlyOneFile_ShouldThrow(path1: "path1d854f446-8539-4a15-a4f3-21ae073cc971", path2: "path2b2e8c4ef-5a27-4b56-b2bc-19d977f49972")
✅ NotHaveFile_And_WithoutAnyFiles_ShouldNotThrow(path1: "path19050dff7-4db4-4d5d-b996-3920743e6c30", path2: "path28085a465-20f1-441b-99c4-2f85ccafcebf")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: "", because: "because296cf627-f553-4c5e-ad09-35f6a461b0f8")
✅ NotHaveFile_InvalidPath_ShouldThrow(invalidPath: null, because: "because23499820-5a80-45ec-b2bd-4af3b59fed8e")
✅ NotHaveFile_WithFile_ShouldThrow(path: "path39a51e38-ace3-42e9-a0c7-9d51e1d94891", because: "because1b6dc2be-c93c-4d4d-980e-82f6dfbf4fad")
✅ NotHaveFile_WithoutFile_ShouldNotThrow(path: "pathb8c7aca8-6732-411e-8127-54c01fe7f672")

✅ Testably.Abstractions.FluentAssertions.Tests.FileSystemInfoAssertionsTests

✅ Exist_ForDirectoryInfo_Null_ShouldThrow(because: "because22246fd9-57d5-49e7-98b5-d5d2b149f1cd")
✅ Exist_ForDirectoryInfo_WithCorrectDirectory_ShouldNotThrow(directoryName: "directoryNamed7220022-89f8-4103-ac00-f1dbed0f628a")
✅ Exist_ForDirectoryInfo_WithoutCorrectDirectory_ShouldThrow(directoryName: "directoryNameeb46e411-f946-42ac-a3c1-1ea40d6d670b", because: "because2cc04adf-bb26-40a8-bf1d-0d6a0be2207e")
✅ Exist_ForDirectoryInfo_WithSameFile_ShouldThrow(fileName: "fileNamef6bcb460-0629-47ea-b91e-25c4c51d2858", because: "because6da61285-205e-4f9f-b3dc-39fbebc6b50d")
✅ Exist_ForFileInfo_Null_ShouldThrow(because: "becausee344405f-ed28-4aea-a85f-f2827c1c3120")
✅ Exist_ForFileInfo_WithCorrectFile_ShouldNotThrow(fileName: "fileName7962367c-09bf-49eb-960f-d66f72386bea")
✅ Exist_ForFileInfo_WithoutCorrectFile_ShouldThrow(fileName: "fileNamed90f5855-facc-43e8-8286-7a4a4ebcac6f", because: "because12fe91b6-8846-4782-b13c-74e6da75ea55")
✅ Exist_ForFileInfo_WithSameDirectory_ShouldThrow(fileName: "fileName58d7a060-d5f4-4855-89cc-bbfcf454a3ec", because: "because69ae23f0-1fa8-495a-a47d-465e61d33175")

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