using Amphora; using UnitTestSharp; namespace Glass.UnitTests { public class FileSystemFailuresTests : TestFixture { public class NamesTests : TestFixture { public void AreTheOnesOnTheWire() { CheckEqual("Glass.FileSystem.NotFound", FileSystemFailures.NotFound.Name); CheckEqual("Glass.FileSystem.NotADirectory", FileSystemFailures.NotADirectory.Name); CheckEqual("Glass.FileSystem.IsADirectory", FileSystemFailures.IsADirectory.Name); CheckEqual("Glass.FileSystem.AlreadyExists", FileSystemFailures.AlreadyExists.Name); CheckEqual("Glass.FileSystem.InvalidName", FileSystemFailures.InvalidName.Name); } } public class DescribeTests : TestFixture { public void EachPathKind_QuotesThePath() { CheckEqual("'/a' doesn't exist.", FileSystemFailures.NotFound.Fail("/a").Describe()); CheckEqual("'/a' isn't a directory.", FileSystemFailures.NotADirectory.Fail("/a").Describe()); CheckEqual("'/a' is a directory.", FileSystemFailures.IsADirectory.Fail("/a").Describe()); CheckEqual("'/a' already exists.", FileSystemFailures.AlreadyExists.Fail("/a").Describe()); } } public class ScanAssembliesTests : TestFixture { public void FindsEveryKindInGlass() { var registry = FailureKindRegistry.ScanAssemblies(new[] { typeof(FileSystemFailures).Assembly }); CheckEqual(FileSystemFailures.NotFound, registry.Resolve(FileSystemFailures.NotFound.Id)); CheckEqual(FileSystemFailures.NotADirectory, registry.Resolve(FileSystemFailures.NotADirectory.Id)); CheckEqual(FileSystemFailures.IsADirectory, registry.Resolve(FileSystemFailures.IsADirectory.Id)); CheckEqual(FileDialogFailures.NothingPicked, registry.Resolve(FileDialogFailures.NothingPicked.Id)); CheckEqual(FileSystemFailures.AlreadyExists, registry.Resolve(FileSystemFailures.AlreadyExists.Id)); CheckEqual(FileSystemFailures.InvalidName, registry.Resolve(FileSystemFailures.InvalidName.Id)); } } } }