Browse Source

Move code to determine MVC controller templates out of view model class into template repository class.

pull/18/head
Matt Ward 14 years ago
parent
commit
a0ba44230e
  1. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj
  2. 48
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectViewModel.cs
  3. 16
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/FileSystem.cs
  4. 12
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IFileSystem.cs
  5. 13
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IMvcTextTemplateRepository.cs
  6. 13
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcControllerTextTemplate.cs
  7. 48
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcTextTemplateRepository.cs
  8. 3
      src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj
  9. 35
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeFileSystem.cs
  10. 21
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcTextTemplateRepository.cs
  11. 38
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/MvcControllerTextTemplateCollectionAssert.cs
  12. 48
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcControllerToProjectViewModelTests.cs
  13. 55
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcTextTemplateRepositoryTests.cs

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj

@ -62,7 +62,9 @@ @@ -62,7 +62,9 @@
<Compile Include="Src\BooleanToVisibilityConverter.cs" />
<Compile Include="Src\CloseDialogBehaviour.cs" />
<Compile Include="Src\DelegateCommand.cs" />
<Compile Include="Src\FileSystem.cs" />
<Compile Include="Src\IAddMvcItemToProjectView.cs" />
<Compile Include="Src\IFileSystem.cs" />
<Compile Include="Src\IMvcModelClassLocator.cs" />
<Compile Include="Src\IMvcClass.cs" />
<Compile Include="Src\IMvcControllerFileGenerator.cs" />
@ -72,6 +74,7 @@ @@ -72,6 +74,7 @@
<Compile Include="Src\IMvcProjectContent.cs" />
<Compile Include="Src\IMvcTextTemplateHost.cs" />
<Compile Include="Src\IMvcTextTemplateHostFactory.cs" />
<Compile Include="Src\IMvcTextTemplateRepository.cs" />
<Compile Include="Src\IMvcViewFileGenerator.cs" />
<Compile Include="Src\ISelectedFolderNodeInProjectsView.cs" />
<Compile Include="Src\ISelectedMvcFolder.cs" />
@ -79,6 +82,7 @@ @@ -79,6 +82,7 @@
<Compile Include="Src\IsMvcFolderSelectedConditionEvaluator.cs" />
<Compile Include="Src\IsMvcViewFolderSelectedConditionEvaluator.cs" />
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="Src\MvcControllerTextTemplate.cs" />
<Compile Include="Src\MvcProjectMasterPageFile.cs" />
<Compile Include="Src\MvcModelClassLocator.cs" />
<Compile Include="Src\MvcAddViewTextTemplateFolder.cs" />
@ -86,7 +90,6 @@ @@ -86,7 +90,6 @@
<Compile Include="Src\MvcControllerFileGenerator.cs" />
<Compile Include="Src\MvcControllerFileName.cs" />
<Compile Include="Src\MvcControllerName.cs" />
<Compile Include="Src\MvcControllerTemplateViewModel.cs" />
<Compile Include="Src\MvcControllerTextTemplateFileName.cs" />
<Compile Include="Src\MvcFileGenerator.cs" />
<Compile Include="Src\MvcFileName.cs" />

48
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcControllerToProjectViewModel.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Input;
using ICSharpCode.AspNet.Mvc;
@ -13,23 +14,27 @@ namespace ICSharpCode.AspNet.Mvc @@ -13,23 +14,27 @@ namespace ICSharpCode.AspNet.Mvc
{
IMvcControllerFileGenerator controllerGenerator;
ISelectedMvcFolder selectedControllerFolder;
IMvcTextTemplateRepository textTemplateRepository;
MvcControllerFileName controllerFileName = new MvcControllerFileName();
bool closed;
List<MvcControllerTemplateViewModel> controllerTemplates;
List<MvcControllerTextTemplate> controllerTemplates;
public AddMvcControllerToProjectViewModel(ISelectedMvcFolder selectedControllerFolder)
: this(
selectedControllerFolder,
new MvcControllerFileGenerator())
new MvcControllerFileGenerator(),
new MvcTextTemplateRepository())
{
}
public AddMvcControllerToProjectViewModel(
ISelectedMvcFolder selectedControllerFolder,
IMvcControllerFileGenerator controllerGenerator)
IMvcControllerFileGenerator controllerGenerator,
IMvcTextTemplateRepository textTemplateRepository)
{
this.selectedControllerFolder = selectedControllerFolder;
this.controllerGenerator = controllerGenerator;
this.textTemplateRepository = textTemplateRepository;
this.controllerFileName.Folder = selectedControllerFolder.Path;
@ -70,46 +75,27 @@ namespace ICSharpCode.AspNet.Mvc @@ -70,46 +75,27 @@ namespace ICSharpCode.AspNet.Mvc
}
}
public IEnumerable<MvcControllerTemplateViewModel> ControllerTemplates {
public IEnumerable<MvcControllerTextTemplate> ControllerTemplates {
get { return controllerTemplates; }
}
public MvcControllerTemplateViewModel SelectedControllerTemplate { get; set; }
public MvcControllerTextTemplate SelectedControllerTemplate { get; set; }
void AddControllerTemplates()
{
controllerTemplates = new List<MvcControllerTemplateViewModel>();
AddEmptyControllerTemplate();
AddEmptyReadWriteControllerTemplate();
SelectEmptyControllerTemplate();
controllerTemplates = GetControllerTemplatesFromRepository();
SelectFirstControllerTemplate();
}
void AddEmptyReadWriteControllerTemplate()
List<MvcControllerTextTemplate> GetControllerTemplatesFromRepository()
{
var template = new MvcControllerTemplateViewModel() {
Name = "EmptyReadWrite",
Description = "Controller with create, read, update and delete actions",
AddActionMethods = true
var criteria = new MvcTextTemplateCriteria() {
TemplateLanguage = GetTemplateLanguage()
};
AddControllerTemplate(template);
return textTemplateRepository.GetMvcControllerTextTemplates(criteria).ToList();
}
void AddEmptyControllerTemplate()
{
var template = new MvcControllerTemplateViewModel() {
Name = "Empty",
Description = "Empty controller",
AddActionMethods = false
};
AddControllerTemplate(template);
}
void AddControllerTemplate(MvcControllerTemplateViewModel template)
{
controllerTemplates.Add(template);
}
void SelectEmptyControllerTemplate()
void SelectFirstControllerTemplate()
{
SelectedControllerTemplate = controllerTemplates[0];
}

16
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/FileSystem.cs

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
namespace ICSharpCode.AspNet.Mvc
{
public class FileSystem : IFileSystem
{
public string[] GetFiles(string path, string searchPattern)
{
return Directory.GetFiles(path, searchPattern);
}
}
}

12
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IFileSystem.cs

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
namespace ICSharpCode.AspNet.Mvc
{
public interface IFileSystem
{
string[] GetFiles(string path, string searchPattern);
}
}

13
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IMvcTextTemplateRepository.cs

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
namespace ICSharpCode.AspNet.Mvc
{
public interface IMvcTextTemplateRepository
{
IEnumerable<MvcControllerTextTemplate> GetMvcControllerTextTemplates(MvcTextTemplateCriteria templateCriteria);
}
}

13
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcControllerTemplateViewModel.cs → src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcControllerTextTemplate.cs

@ -5,23 +5,26 @@ using System; @@ -5,23 +5,26 @@ using System;
namespace ICSharpCode.AspNet.Mvc
{
public class MvcControllerTemplateViewModel
public class MvcControllerTextTemplate
{
public MvcControllerTemplateViewModel()
: this(String.Empty, String.Empty)
public MvcControllerTextTemplate()
: this(String.Empty, String.Empty, String.Empty)
{
}
public MvcControllerTemplateViewModel(
public MvcControllerTextTemplate(
string name,
string description)
string description,
string fileName)
{
this.Name = name;
this.Description = description;
this.FileName = fileName;
}
public string Name { get; set; }
public string Description { get; set; }
public string FileName { get; set; }
public bool AddActionMethods { get; set; }
}
}

48
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcTextTemplateRepository.cs

@ -2,20 +2,27 @@ @@ -2,20 +2,27 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.Core;
namespace ICSharpCode.AspNet.Mvc
{
public class MvcTextTemplateRepository
public class MvcTextTemplateRepository : IMvcTextTemplateRepository
{
string textTemplatesRootDirectory;
public MvcTextTemplateRepository(string mvcAddInPath)
public MvcTextTemplateRepository(string mvcAddInPath, IFileSystem fileSystem)
{
GetTextTemplatesRootDirectory(mvcAddInPath);
}
public MvcTextTemplateRepository(string mvcAddInPath)
: this(mvcAddInPath, new FileSystem())
{
}
public MvcTextTemplateRepository()
: this(StringParser.GetValue("addinpath:ICSharpCode.AspNet.Mvc"))
{
@ -37,5 +44,42 @@ namespace ICSharpCode.AspNet.Mvc @@ -37,5 +44,42 @@ namespace ICSharpCode.AspNet.Mvc
var fileName = new MvcControllerTextTemplateFileName(textTemplatesRootDirectory, templateCriteria);
return fileName.GetPath();
}
public IEnumerable<MvcControllerTextTemplate> GetMvcControllerTextTemplates(MvcTextTemplateCriteria templateCriteria)
{
string templateFileName = GetDefaultMvcControllerTextTemplateFileName(templateCriteria);
yield return CreateEmptyControllerTemplate(templateFileName);
yield return CreateEmptyReadWriteControllerTemplate(templateFileName);
}
string GetDefaultMvcControllerTextTemplateFileName(MvcTextTemplateCriteria templateCriteria)
{
var defaultControllerTemplateCriteria = new MvcTextTemplateCriteria() {
TemplateLanguage = templateCriteria.TemplateLanguage,
TemplateName = "Controller",
TemplateType = templateCriteria.TemplateType
};
return GetMvcControllerTextTemplateFileName(defaultControllerTemplateCriteria);
}
MvcControllerTextTemplate CreateEmptyControllerTemplate(string templateFileName)
{
return new MvcControllerTextTemplate() {
Name = "Empty",
Description = "Empty controller",
FileName = templateFileName,
AddActionMethods = false
};
}
MvcControllerTextTemplate CreateEmptyReadWriteControllerTemplate(string templateFileName)
{
return new MvcControllerTextTemplate() {
Name = "EmptyReadWrite",
Description = "Controller with create, read, update and delete actions",
FileName = templateFileName,
AddActionMethods = true
};
}
}
}

3
src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj

@ -54,6 +54,7 @@ @@ -54,6 +54,7 @@
</Compile>
<Compile Include="Helpers\FakeAddMvcItemToProjectView.cs" />
<Compile Include="Helpers\FakeClass.cs" />
<Compile Include="Helpers\FakeFileSystem.cs" />
<Compile Include="Helpers\FakeMvcModelClassLocator.cs" />
<Compile Include="Helpers\FakeMvcClass.cs" />
<Compile Include="Helpers\FakeMvcControllerFileGenerator.cs" />
@ -63,9 +64,11 @@ @@ -63,9 +64,11 @@
<Compile Include="Helpers\FakeMvcProjectContent.cs" />
<Compile Include="Helpers\FakeMvcTextTemplateHost.cs" />
<Compile Include="Helpers\FakeMvcTextTemplateHostFactory.cs" />
<Compile Include="Helpers\FakeMvcTextTemplateRepository.cs" />
<Compile Include="Helpers\FakeMvcViewFileGenerator.cs" />
<Compile Include="Helpers\FakeSelectedFolderNodeInProjectsView.cs" />
<Compile Include="Helpers\FakeSelectedMvcFolder.cs" />
<Compile Include="Helpers\MvcControllerTextTemplateCollectionAssert.cs" />
<Compile Include="Helpers\MvcProjectFileAssert.cs" />
<Compile Include="Helpers\MvcProjectFileCollectionAssert.cs" />
<Compile Include="Helpers\TestableAddMvcControllerToProjectCommand.cs" />

35
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeFileSystem.cs

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.AspNet.Mvc;
namespace AspNet.Mvc.Tests.Helpers
{
public class FakeFileSystem : IFileSystem
{
Dictionary<string, string[]> directoryFiles = new Dictionary<string, string[]>();
public void AddFakeFiles(string path, string searchPattern, string[] files)
{
string key = GetKey(path, searchPattern);
directoryFiles.Add(key, files);
}
string GetKey(string path, string searchPattern)
{
return path + " - " + searchPattern;
}
public string[] GetFiles(string path, string searchPattern)
{
string key = GetKey(path, searchPattern);
string[] files = null;
if (directoryFiles.TryGetValue(key, out files)) {
return files;
}
return new string[0];
}
}
}

21
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcTextTemplateRepository.cs

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.AspNet.Mvc;
namespace AspNet.Mvc.Tests.Helpers
{
public class FakeMvcTextTemplateRepository : IMvcTextTemplateRepository
{
public List<MvcControllerTextTemplate> ControllerTextTemplates = new List<MvcControllerTextTemplate>();
public MvcTextTemplateCriteria TemplateCriteriaPassedToGetMvcControllerTextTemplates;
public IEnumerable<MvcControllerTextTemplate> GetMvcControllerTextTemplates(MvcTextTemplateCriteria templateCriteria)
{
TemplateCriteriaPassedToGetMvcControllerTextTemplates = templateCriteria;
return ControllerTextTemplates;
}
}
}

38
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/MvcControllerTextTemplateCollectionAssert.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using ICSharpCode.AspNet.Mvc;
using NUnit.Framework;
namespace AspNet.Mvc.Tests.Helpers
{
public static class MvcControllerTextTemplateCollectionAssert
{
public static void AreEqual(IEnumerable<MvcControllerTextTemplate> expected, IEnumerable<MvcControllerTextTemplate> actual)
{
List<string> expectedAsStrings = ConvertToStrings(expected);
List<string> actualAsStrings = ConvertToStrings(actual);
CollectionAssert.AreEqual(expectedAsStrings, actualAsStrings);
}
static List<string> ConvertToStrings(IEnumerable<MvcControllerTextTemplate> templates)
{
var templatesAsStrings = new List<string>();
foreach (MvcControllerTextTemplate template in templates) {
string templateAsString = ConvertToString(template);
templatesAsStrings.Add(templateAsString);
}
return templatesAsStrings;
}
static string ConvertToString(MvcControllerTextTemplate template)
{
return String.Format(
"Name: {0}, Description: {1}, AddActionMethods: {2}, FileName: {3}",
template.Name, template.Description, template.AddActionMethods, template.FileName);
}
}
}

48
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcControllerToProjectViewModelTests.cs

@ -35,6 +35,15 @@ namespace AspNet.Mvc.Tests @@ -35,6 +35,15 @@ namespace AspNet.Mvc.Tests
void CreateViewModelWithControllerFolderPath(
string path,
MvcTextTemplateLanguage language)
{
var textTemplateRepository = new MvcTextTemplateRepository(@"d:\SD\ItemTemplates");
CreateViewModelWithControllerFolderPath(path, language, textTemplateRepository);
}
void CreateViewModelWithControllerFolderPath(
string path,
MvcTextTemplateLanguage language,
MvcTextTemplateRepository textTemplateRepository)
{
fakeSelectedMvcControllerFolder = new FakeSelectedMvcFolder();
fakeSelectedMvcControllerFolder.TemplateLanguage = language;
@ -42,7 +51,8 @@ namespace AspNet.Mvc.Tests @@ -42,7 +51,8 @@ namespace AspNet.Mvc.Tests
fakeControllerGenerator = new FakeMvcControllerFileGenerator();
viewModel = new AddMvcControllerToProjectViewModel(
fakeSelectedMvcControllerFolder,
fakeControllerGenerator);
fakeControllerGenerator,
textTemplateRepository);
}
void MonitorPropertyChangedEvents()
@ -56,7 +66,7 @@ namespace AspNet.Mvc.Tests @@ -56,7 +66,7 @@ namespace AspNet.Mvc.Tests
return viewModel.ControllerTemplates.Any(v => v.Name == templateName);
}
MvcControllerTemplateViewModel GetControllerTemplateFromViewModel(string templateName)
MvcControllerTextTemplate GetControllerTemplateFromViewModel(string templateName)
{
return viewModel.ControllerTemplates.SingleOrDefault(v => v.Name == templateName);
}
@ -243,7 +253,7 @@ namespace AspNet.Mvc.Tests @@ -243,7 +253,7 @@ namespace AspNet.Mvc.Tests
{
CreateViewModelWithCSharpProject();
MvcControllerTemplateViewModel controllerTemplate = viewModel.SelectedControllerTemplate;
MvcControllerTextTemplate controllerTemplate = viewModel.SelectedControllerTemplate;
Assert.AreEqual("Empty", controllerTemplate.Name);
}
@ -269,5 +279,37 @@ namespace AspNet.Mvc.Tests @@ -269,5 +279,37 @@ namespace AspNet.Mvc.Tests
Assert.IsFalse(fakeControllerGenerator.AddActionMethods);
}
[Test]
public void ControllerTemplates_CSharpProjectDefaultTemplates_EmptyControllerTemplateFileNameIsCSharpTemplateFileName()
{
var templateRepository = new MvcTextTemplateRepository(@"d:\sd\AspNetMvcAddIn");
CreateViewModelWithControllerFolderPath(
@"d:\projects\MyAspMvcProject\Controllers",
MvcTextTemplateLanguage.CSharp,
templateRepository);
MvcControllerTextTemplate template = GetControllerTemplateFromViewModel("Empty");
string fileName = template.FileName;
string expectedFileName = @"d:\sd\AspNetMvcAddIn\ItemTemplates\CSharp\CodeTemplates\AddController\Controller.tt";
Assert.AreEqual(expectedFileName, fileName);
}
[Test]
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);
}
}
}

55
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/MvcTextTemplateRepositoryTests.cs

@ -2,6 +2,9 @@ @@ -2,6 +2,9 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using AspNet.Mvc.Tests.Helpers;
using ICSharpCode.AspNet.Mvc;
using NUnit.Framework;
@ -11,10 +14,25 @@ namespace AspNet.Mvc.Tests @@ -11,10 +14,25 @@ namespace AspNet.Mvc.Tests
public class MvcTextTemplateRepositoryTests
{
MvcTextTemplateRepository repository;
FakeFileSystem fakeFileSystem;
void CreateRepositoryWithAspNetMvcAddInDirectory(string mvcAddInPath)
{
repository = new MvcTextTemplateRepository(mvcAddInPath);
fakeFileSystem = new FakeFileSystem();
repository = new MvcTextTemplateRepository(mvcAddInPath, fakeFileSystem);
}
void AddCSharpAspxTemplateToFolder(string path, string fileName)
{
string[] fileNames = new string[] {
fileName
};
AddCSharpAspxTemplatesToFolder(path, fileNames);
}
void AddCSharpAspxTemplatesToFolder(string path, string[] fileNames)
{
fakeFileSystem.AddFakeFiles(path, "*.tt", fileNames);
}
[Test]
@ -149,5 +167,40 @@ namespace AspNet.Mvc.Tests @@ -149,5 +167,40 @@ namespace AspNet.Mvc.Tests
Assert.AreEqual(expectedFileName, fileName);
}
[Test]
public void GetMvcControllerTextTemplates_CSharpAspxTemplatesRequestedAndOneControllerTemplateInFolder_ReturnsTwoCSharpAspxControllerTextTemplates()
{
CreateRepositoryWithAspNetMvcAddInDirectory(@"C:\SD\AddIns\AspNet.Mvc");
var templateCriteria = new MvcTextTemplateCriteria() {
TemplateLanguage = MvcTextTemplateLanguage.CSharp,
TemplateType = MvcTextTemplateType.Aspx
};
List<MvcControllerTextTemplate> templates = repository.GetMvcControllerTextTemplates(templateCriteria).ToList();
string existingTemplateFileName =
@"C:\SD\AddIns\AspNet.Mvc\ItemTemplates\CSharp\CodeTemplates\AddController\Controller.tt";
var expectedTemplate1 = new MvcControllerTextTemplate() {
Name = "Empty",
Description = "Empty controller",
FileName = existingTemplateFileName,
AddActionMethods = false
};
var expectedTemplate2 = new MvcControllerTextTemplate() {
Name = "EmptyReadWrite",
Description = "Controller with create, read, update and delete actions",
FileName = existingTemplateFileName,
AddActionMethods = true
};
var expectedTemplates = new MvcControllerTextTemplate[] {
expectedTemplate1,
expectedTemplate2
};
MvcControllerTextTemplateCollectionAssert.AreEqual(expectedTemplates, templates);
}
}
}

Loading…
Cancel
Save