Browse Source

Fix WCFMetadata project item for Service References being added multiple times when adding a service reference.

4.2
Matt Ward 13 years ago
parent
commit
57d8888947
  1. 13
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ProjectWithServiceReferences.cs
  2. 20
      src/Main/Base/Test/ServiceReferences/ProjectWithServiceReferencesTests.cs

13
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ProjectWithServiceReferences.cs

@ -82,9 +82,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -82,9 +82,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
void AddServiceReferencesItemToProject()
{
var projectItem = new ServiceReferencesProjectItem(project);
projectItem.Include = "Service References";
AddProjectItemToProject(projectItem);
if (IsServiceReferencesItemMissingFromProject()) {
var projectItem = new ServiceReferencesProjectItem(project);
projectItem.Include = "Service References";
AddProjectItemToProject(projectItem);
}
}
bool IsServiceReferencesItemMissingFromProject()
{
return project.GetItemsOfType(ItemType.ServiceReferences).Count() == 0;
}
void AddServiceReferenceItemToProject(ServiceReferenceFileName fileName)

20
src/Main/Base/Test/ServiceReferences/ProjectWithServiceReferencesTests.cs

@ -63,6 +63,11 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -63,6 +63,11 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
return msbuildProject.GetItemsOfType(ItemType.ServiceReferences).SingleOrDefault() as ServiceReferencesProjectItem;
}
int GetHowManyWCFMetadataItemsInMSBuildProject()
{
return msbuildProject.GetItemsOfType(ItemType.ServiceReferences).Count();
}
ProjectItem GetFileProjectItemInMSBuildProject(string fileName)
{
return msbuildProject.Items.SingleOrDefault(item => item.FileName == fileName);
@ -175,6 +180,21 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -175,6 +180,21 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
Assert.AreEqual("Service References", item.Include);
}
[Test]
public void AddServiceReferenceProxyFile_ProjectHasServiceReferences_WCFMetadataItemNotAddedToProjectForServiceReferencesRootFolder()
{
CreateProjectWithMSBuildProject();
var proxyFileName = new ServiceReferenceFileName() { ServiceName = "Service1" };
project.AddServiceReferenceProxyFile(proxyFileName);
proxyFileName = new ServiceReferenceFileName() { ServiceName = "Service2" };
project.AddServiceReferenceProxyFile(proxyFileName);
int count = GetHowManyWCFMetadataItemsInMSBuildProject();
Assert.AreEqual(1, count);
}
[Test]
public void AddServiceReferenceProxyFile_ProjectHasNoServiceReferences_WCFMetadataStorageItemAddedToProjectForServiceReferencesFolder()
{

Loading…
Cancel
Save