From d9fc631e313a7e7c304dea2e3ef498ec1d6976f4 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 15 Jul 2012 10:17:23 +0100 Subject: [PATCH] Fix MvcScaffolding generated DbContext class not using project's root namespace. --- .../Project/Src/EnvDTE/ProjectProperty.cs | 12 ++++++++++ .../Test/Src/EnvDTE/ProjectPropertyTests.cs | 24 ++++++++++++++++++- .../Test/Src/Helpers/TestableProject.cs | 6 +++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectProperty.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectProperty.cs index 8f63e63381..097ff1aef9 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectProperty.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectProperty.cs @@ -30,6 +30,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE return GetFullPath(); } else if (IsOutputFileName()) { return GetOutputFileName(); + } else if (IsDefaultNamespace()) { + return GetDefaultNamespace(); } return EmptyStringIfNull(value); } @@ -65,6 +67,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE return targetFramework.TargetFrameworkName.ToString(); } + bool IsDefaultNamespace() + { + return IsCaseInsensitiveMatch(Name, "DefaultNamespace"); + } + + string GetDefaultNamespace() + { + return MSBuildProject.RootNamespace; + } + MSBuildBasedProject MSBuildProject { get { return project.MSBuildProject; } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs index 7af44ae698..eeeb27a8e6 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs @@ -209,7 +209,29 @@ namespace PackageManagement.Tests.EnvDTE string fileName = (string)project.Properties.Item("OutputFileName").Value; - Assert.AreEqual(@"MyProject.exe", fileName); + Assert.AreEqual("MyProject.exe", fileName); + } + + [Test] + public void Properties_GetDefaultNamespaceProperty_ReturnsRootNamespaceForProject() + { + CreateProperties(); + msbuildProject.RootNamespace = "MyProjectRootNamespace"; + + string defaultNamespace = (string)project.Properties.Item("DefaultNamespace").Value; + + Assert.AreEqual("MyProjectRootNamespace", defaultNamespace); + } + + [Test] + public void Properties_GetDefaultNamespacePropertyUsingUppercaseName_ReturnsRootNamespaceForProject() + { + CreateProperties(); + msbuildProject.RootNamespace = "MyProjectRootNamespace"; + + string defaultNamespace = (string)project.Properties.Item("DEFAULTNAMESPACE").Value; + + Assert.AreEqual("MyProjectRootNamespace", defaultNamespace); } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs index a515b2719c..17d60fea25 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs @@ -12,6 +12,7 @@ namespace PackageManagement.Tests.Helpers { public bool IsSaved; string assemblyName; + string rootNamespace; public ItemType ItemTypeToReturnFromGetDefaultItemType { get { return TestableProjectBehaviour.ItemTypeToReturnFromGetDefaultItemType; } @@ -74,5 +75,10 @@ namespace PackageManagement.Tests.Helpers get { return assemblyName; } set { assemblyName = value; } } + + public override string RootNamespace { + get { return rootNamespace; } + set { rootNamespace = value; } + } } }