Browse Source

Select empty view template when model class name typed in does not match any model class.

pull/18/head
Matt Ward 14 years ago
parent
commit
8b891da4cd
  1. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs
  2. 25
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs

@ -24,7 +24,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -24,7 +24,7 @@ namespace ICSharpCode.AspNet.Mvc
bool isSelectMasterPageViewOpen;
MvcProjectFile selectedMasterPage;
string masterPageFile = String.Empty;
List<MvcViewTextTemplate> viewTemplates;
List<MvcViewTextTemplate> viewTemplates = new List<MvcViewTextTemplate>();
MvcViewTextTemplate selectedViewTemplate;
MvcModelClassViewModelsForSelectedFolder modelClassesForSelectedFolder;
MvcModelClassViewModel selectedModelClass;
@ -317,6 +317,9 @@ namespace ICSharpCode.AspNet.Mvc @@ -317,6 +317,9 @@ namespace ICSharpCode.AspNet.Mvc
get { return selectedModelClass; }
set {
selectedModelClass = value;
if (selectedModelClass == null) {
SelectDefaultViewTemplate();
}
OnPropertyChanged(viewModel => viewModel.SelectedModelClass);
OnPropertyChanged(viewModel => viewModel.IsViewTemplateEnabled);
}

25
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

@ -1363,5 +1363,30 @@ namespace AspNet.Mvc.Tests @@ -1363,5 +1363,30 @@ namespace AspNet.Mvc.Tests
Assert.AreEqual(expectedModelClass, selectedModelClass);
}
[Test]
public void ViewTemplates_NonEmptyViewTemplateSelectedWhenUserTypesInModelClassName_EmptyViewTemplateSelected()
{
fakeTextTemplateRepository = new FakeMvcTextTemplateRepository();
var templateB = new MvcViewTextTemplate(@"d:\templates\B.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(templateB);
var emptyTemplate = new MvcViewTextTemplate(@"d:\templates\Empty.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(emptyTemplate);
CreateViewModelWithViewFolderPath(@"d:\myproject\views", fakeTextTemplateRepository);
AddModelClassToProject("ICSharpCode.MyProject", "MyModel");
viewModel.IsStronglyTypedView = true;
MvcModelClassViewModel expectedModelClass = viewModel.ModelClasses.First();
viewModel.SelectedModelClass = expectedModelClass;
viewModel.SelectedViewTemplate = templateB;
viewModel.ModelClassName = "test";
MvcViewTextTemplate template = viewModel.SelectedViewTemplate;
Assert.AreEqual(emptyTemplate, template);
}
}
}

Loading…
Cancel
Save