Browse Source

Fix web reference unit tests by initializing the LanguageBindingService with dummy data.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1665 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
6f3ea68408
  1. 4
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs
  2. 10
      src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs
  3. 2
      src/Main/Base/Test/WebReferences/ProjectHasExistingWebRefFolderTest.cs
  4. 2
      src/Main/Base/Test/WebReferences/RenamedWebReferencesFolderTest.cs
  5. 2
      src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs
  6. 2
      src/Main/Base/Test/WebReferences/VBNetWebReferenceTest.cs
  7. 2
      src/Main/Base/Test/WebReferences/WebReferenceChangesTest.cs
  8. 2
      src/Main/Base/Test/WebReferences/WebReferenceFolderAlreadyExistsTest.cs
  9. 2
      src/Main/Base/Test/WebReferences/WebReferenceProjectItemsCachedTest.cs
  10. 2
      src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs
  11. 19
      src/Main/Base/Test/WebReferences/WebReferenceTestHelper.cs
  12. 2
      src/Main/Base/Test/WebReferences/WebServicesReferenceExistsTests.cs

4
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingDescriptor.cs

@ -25,6 +25,10 @@ namespace ICSharpCode.Core
get { get {
if (binding == null) { if (binding == null) {
binding = (ILanguageBinding)codon.AddIn.CreateObject(codon.Properties["class"]); binding = (ILanguageBinding)codon.AddIn.CreateObject(codon.Properties["class"]);
if (binding != null) {
if (binding.Language != this.Language)
throw new InvalidOperationException("The Language property of the language binding must be equal to the id of the LanguageBinding codon!");
}
} }
return binding; return binding;
} }

10
src/Main/Base/Project/Src/Services/LanguageBinding/LanguageBindingService.cs

@ -23,6 +23,14 @@ namespace ICSharpCode.Core
bindings = AddInTree.BuildItems<LanguageBindingDescriptor>("/SharpDevelop/Workbench/LanguageBindings", null, false); bindings = AddInTree.BuildItems<LanguageBindingDescriptor>("/SharpDevelop/Workbench/LanguageBindings", null, false);
} }
/// <summary>
/// Overwrites the list of used bindings. Used for unit tests.
/// </summary>
public static void SetBindings(IList<LanguageBindingDescriptor> bindings)
{
LanguageBindingService.bindings = bindings;
}
public static string GetProjectFileExtension(string languageName) public static string GetProjectFileExtension(string languageName)
{ {
LanguageBindingDescriptor descriptor = GetCodonPerLanguageName(languageName); LanguageBindingDescriptor descriptor = GetCodonPerLanguageName(languageName);
@ -50,7 +58,7 @@ namespace ICSharpCode.Core
public static LanguageBindingDescriptor GetCodonPerLanguageName(string languagename) public static LanguageBindingDescriptor GetCodonPerLanguageName(string languagename)
{ {
foreach (LanguageBindingDescriptor binding in bindings) { foreach (LanguageBindingDescriptor binding in bindings) {
if (binding.Binding.Language == languagename) { if (binding.Language == languagename) {
return binding; return binding;
} }
} }

2
src/Main/Base/Test/WebReferences/ProjectHasExistingWebRefFolderTest.cs

@ -54,6 +54,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
webReferencesProjectItem = WebReferenceTestHelper.GetProjectItem(webReference.Items, "Web References\\", ItemType.WebReferences); webReferencesProjectItem = WebReferenceTestHelper.GetProjectItem(webReference.Items, "Web References\\", ItemType.WebReferences);
} }

2
src/Main/Base/Test/WebReferences/RenamedWebReferencesFolderTest.cs

@ -45,6 +45,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
protocol = new DiscoveryClientProtocol(); protocol = new DiscoveryClientProtocol();
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
webReferenceUrl = (WebReferenceUrl)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.WebReferenceUrl); webReferenceUrl = (WebReferenceUrl)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.WebReferenceUrl);
} }

2
src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs

@ -52,6 +52,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
proxyFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.vb", ItemType.Compile); proxyFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.vb", ItemType.Compile);

2
src/Main/Base/Test/WebReferences/VBNetWebReferenceTest.cs

@ -51,6 +51,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
proxyFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.vb", ItemType.Compile); proxyFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.vb", ItemType.Compile);

2
src/Main/Base/Test/WebReferences/WebReferenceChangesTest.cs

@ -78,6 +78,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
SD.WebReference webReference = new SD.WebReference(project, "http://localhost/new.asmx", "localhost", "ProxyNamespace", protocol); SD.WebReference webReference = new SD.WebReference(project, "http://localhost/new.asmx", "localhost", "ProxyNamespace", protocol);
changes = webReference.GetChanges(project); changes = webReference.GetChanges(project);
} }

2
src/Main/Base/Test/WebReferences/WebReferenceFolderAlreadyExistsTest.cs

@ -61,6 +61,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, oldName, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, oldName, proxyNamespace, protocol);
// Force generation of items. // Force generation of items.

2
src/Main/Base/Test/WebReferences/WebReferenceProjectItemsCachedTest.cs

@ -53,6 +53,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
foreach (ProjectItem item in webReference.Items) { foreach (ProjectItem item in webReference.Items) {

2
src/Main/Base/Test/WebReferences/WebReferenceProjectItemsTest.cs

@ -57,6 +57,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
webReferenceUrl = webReference.WebReferenceUrl; webReferenceUrl = webReference.WebReferenceUrl;

19
src/Main/Base/Test/WebReferences/WebReferenceTestHelper.cs

@ -5,6 +5,7 @@
// <version>$Revision$</version> // <version>$Revision$</version>
// </file> // </file>
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -14,10 +15,24 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
/// <summary> /// <summary>
/// Helper methods used when testing web references /// Helper methods used when testing web references
/// </summary> /// </summary>
public class WebReferenceTestHelper public static class WebReferenceTestHelper
{ {
WebReferenceTestHelper() public static void InitializeLanguageBindings()
{ {
Properties prop = new Properties();
prop["id"] = "C#";
prop["supportedextensions"] = ".cs";
prop["projectfileextension"] = ".csproj";
Codon codon1 = new Codon(null, "LanguageBinding", prop, new Condition[0]);
prop = new Properties();
prop["id"] = "VBNet";
prop["supportedextensions"] = ".vb";
prop["projectfileextension"] = ".vbproj";
Codon codon2 = new Codon(null, "LanguageBinding", prop, new Condition[0]);
LanguageBindingService.SetBindings(new LanguageBindingDescriptor[] {
new LanguageBindingDescriptor(codon1),
new LanguageBindingDescriptor(codon2)
});
} }
public static ProjectItem GetProjectItem(List<ProjectItem> items, string include, ItemType itemType) { public static ProjectItem GetProjectItem(List<ProjectItem> items, string include, ItemType itemType) {

2
src/Main/Base/Test/WebReferences/WebServicesReferenceExistsTests.cs

@ -55,6 +55,8 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc);
protocol.References.Add(contractRef); protocol.References.Add(contractRef);
WebReferenceTestHelper.InitializeLanguageBindings();
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol);
webServicesReferenceProjectItem = (ReferenceProjectItem)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.Reference); webServicesReferenceProjectItem = (ReferenceProjectItem)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.Reference);
} }

Loading…
Cancel
Save