示例#1
0
        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));
        }