public void WithNonExistantDirectoryPathThrows()
        {
            var builder = new GeneratedAssemblyBuilder();
            var ex      = Assert.Throws <ValidationException>(() =>
            {
                builder
                .WithUniqueAssemblyName()
                .InDirectory(@".\bleah")
                .SaveAssembly();
            });

            Assert.Equal(@"Directory .\bleah does not exist.", ex.Message);
        }
        public void WithBadDirectoryPathThrows()
        {
            var builder = new GeneratedAssemblyBuilder();
            var path    = $"x{Path.GetInvalidPathChars()[0]}x";
            var ex      = Assert.Throws <ValidationException>(() =>
            {
                builder
                .WithUniqueAssemblyName()
                .InDirectory(path)
                .SaveAssembly();
            });

            Assert.Equal($"Directory {path} contains invalid characters.", ex.Message);
        }
        public void WithInvalidClassThrows()
        {
            var builder = new GeneratedAssemblyBuilder();
            var ex      = Assert.Throws <ValidationException>(() =>
            {
                builder
                .WithUniqueAssemblyName()
                .InCurrentDirectory()
                .WithClass("Program").CommitType()
                .WithClass("\"").CommitType()
                .SaveAssembly();
            });

            Assert.Equal("\" is not a valid class name.", ex.Message);
        }