public void Construct() { var buildSystem = new FakeBuildSystem(); var codeNamespace = new CodeNamespace(_sampleNamespace); ICodeGeneratorParameters configuration = new CodeGeneratorParameters(_outputDirectory); var testBuilders = MemberBuilderFactory.Default; Assert.Throws<ArgumentNullException>(() => new CSharpCodeGenerator(null, codeNamespace, testBuilders, configuration)); Assert.Throws<ArgumentNullException>(() => new CSharpCodeGenerator(buildSystem, null, testBuilders, configuration)); new CSharpCodeGenerator(buildSystem, codeNamespace, null, configuration); Assert.Throws<ArgumentException>(() => new CSharpCodeGenerator(buildSystem, codeNamespace, testBuilders, null)); configuration = MockRepository.GenerateStub<ICodeGeneratorParameters>(); configuration.Expect((e)=> e.OutputDirectory).Return(null); Assert.Throws<ArgumentNullException>(() => new CSharpCodeGenerator(buildSystem, codeNamespace, testBuilders, configuration)); configuration.Expect((e) => e.OutputDirectory).Return(string.Empty); Assert.Throws<ArgumentException>(() => new CSharpCodeGenerator(buildSystem, codeNamespace, testBuilders, configuration)); configuration = new CodeGeneratorParameters(_outputDirectory); buildSystem = new FakeBuildSystem() { FakeDirectoryExists = false }; Assert.Throws<ApplicationException>(() => new CSharpCodeGenerator(buildSystem, codeNamespace, testBuilders, configuration)); }