public NStubCore(IBuildSystem buildSystem, CodeNamespace codeNamespace, string outputDirectory,
ICodeGenerator codeGenerator)
{
#region Validation
Guard.NotNull(() => buildSystem, buildSystem);
this.sbs = buildSystem;
// Null arguments will not be accepted
if (codeNamespace == null)
{
throw new ArgumentNullException("codeNamespace",
Exceptions.ParameterCannotBeNull);
}
//Guard.NotNullOrEmpty(() => outputDirectory, outputDirectory);
if (outputDirectory == null)
{
throw new ArgumentNullException("outputDirectory",
Exceptions.ParameterCannotBeNull);
}
if (codeGenerator == null)
{
throw new ArgumentNullException("codeGenerator",
Exceptions.ParameterCannotBeNull);
}
// The output directory can't be empty
if (outputDirectory.Length == 0)
{
throw new ArgumentException(Exceptions.StringCannotBeEmpty,
"outputDirectory");
}
// Ensure the output directory is valid
if (!(buildSystem.DirectoryExists(outputDirectory)))
{
throw new System.IO.DirectoryNotFoundException(Exceptions.DirectoryCannotBeFound);
}
#endregion Validation
// Set our member variables
_codeNamespace = codeNamespace;
_outputDirectory = outputDirectory;
InitCodeGenerator(codeGenerator);
}