void CreateViewModelWithControllerFolderPath(
			string path,
			MvcTextTemplateLanguage language)
		{
			var textTemplateRepository = new MvcTextTemplateRepository(@"d:\SD\ItemTemplates");
			CreateViewModelWithControllerFolderPath(path, language, textTemplateRepository);
		}
		void CreateGenerator(MvcTextTemplateRepository templateRepository)
		{
			fakeHostFactory = new FakeMvcTextTemplateHostFactory();
			fakeHost = fakeHostFactory.FakeMvcTextTemplateHost;
			fakeAppDomainFactory = new FakeMvcTextTemplateAppDomainFactory();
			generator = new MvcViewFileGenerator(fakeHostFactory, templateRepository, fakeAppDomainFactory);
			projectUsedByGenerator = new FakeMvcProject();
			generator.Project = projectUsedByGenerator;
			ProjectPassedToGeneratorIsCSharpProject();
		}
		void CreateViewModelWithControllerFolderPath(
			string path,
			MvcTextTemplateLanguage language,
			MvcTextTemplateRepository textTemplateRepository)
		{
			fakeSelectedMvcControllerFolder = new FakeSelectedMvcFolder();
			fakeSelectedMvcControllerFolder.TemplateLanguage = language;
			fakeSelectedMvcControllerFolder.Path = path;
			fakeControllerGenerator = new FakeMvcControllerFileGenerator();
			viewModel = new AddMvcControllerToProjectViewModel(
				fakeSelectedMvcControllerFolder,
				fakeControllerGenerator,
				textTemplateRepository);
		}
		public MvcViewFileGenerator(
			IMvcTextTemplateHostFactory hostFactory,
			MvcTextTemplateRepository textTemplateRepository,
			IMvcTextTemplateHostAppDomainFactory appDomainFactory)
			: base(hostFactory, appDomainFactory)
		{
			this.textTemplateRepository = textTemplateRepository;
			
			ModelClassName = String.Empty;
			ModelClassAssemblyLocation = String.Empty;
			MasterPageFile = String.Empty;
			PrimaryContentPlaceHolderId = String.Empty;
			Template = new MvcViewTextTemplate();
		}
		public void ControllerTemplates_VisualBasicProjectDefaultTemplates_EmptyControllerTemplateFileNameIsVisualBasicTemplateFileName()
		{
			var templateRepository = new MvcTextTemplateRepository(@"d:\sd\AspNetMvcAddIn");
			CreateViewModelWithControllerFolderPath(
				@"d:\projects\MyAspMvcProject\Controllers",
				MvcTextTemplateLanguage.VisualBasic,
				templateRepository);
			
			MvcControllerTextTemplate template = GetControllerTemplateFromViewModel("Empty");
			string fileName = template.FileName;
			string expectedFileName = @"d:\sd\AspNetMvcAddIn\ItemTemplates\VisualBasic\CodeTemplates\AddController\Controller.tt";
			
			Assert.AreEqual(expectedFileName, fileName);
		}
		void CreateRepositoryWithAspNetMvcAddInDirectory(string mvcAddInPath)
		{
			fakeFileSystem = MockRepository.GenerateStub<IFileSystem>();
			repository = new MvcTextTemplateRepository(mvcAddInPath, fakeFileSystem);
		}
		void CreateRepositoryWithAspNetMvcAddInDirectory(string mvcAddInPath)
		{
			fakeFileSystem = new FakeFileSystem();
			repository = new MvcTextTemplateRepository(mvcAddInPath, fakeFileSystem);
		}
		void CreateTemplateRepository(string templateRootDirectory)
		{
			templateRepository = new MvcTextTemplateRepository(templateRootDirectory);
		}