You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
6.2 KiB
212 lines
6.2 KiB
// 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 ICSharpCode.SharpDevelop; |
|
using SD = ICSharpCode.SharpDevelop.Gui; |
|
using ICSharpCode.SharpDevelop.Project; |
|
using NUnit.Framework; |
|
using System; |
|
using System.IO; |
|
using System.Collections.Generic; |
|
using System.Web.Services.Description; |
|
using System.Web.Services.Discovery; |
|
|
|
namespace ICSharpCode.SharpDevelop.Tests.WebReferences |
|
{ |
|
/// <summary> |
|
/// Tests the generated project items for a web reference. |
|
/// </summary> |
|
[TestFixture] |
|
public class WebReferenceTests |
|
{ |
|
SD.WebReference webReference; |
|
DiscoveryClientProtocol protocol; |
|
WebReferenceUrl webReferenceUrl; |
|
FileProjectItem discoFileProjectItem; |
|
FileProjectItem referenceMapFileProjectItem; |
|
FileProjectItem wsdlFileProjectItem; |
|
FileProjectItem proxyFileProjectItem; |
|
WebReferencesProjectItem webReferencesProjectItem; |
|
ReferenceProjectItem webServicesReferenceProjectItem; |
|
MSBuildBasedProject project; |
|
|
|
string name = "localhost"; |
|
string proxyNamespace = "WebReferenceNamespace"; |
|
string updateFromUrl = "http://localhost/test.asmx"; |
|
|
|
[TestFixtureSetUp] |
|
public void SetUpFixture() |
|
{ |
|
project = WebReferenceTestHelper.CreateTestProject("C#"); |
|
project.FileName = "C:\\projects\\test\\foo.csproj"; |
|
|
|
protocol = new DiscoveryClientProtocol(); |
|
DiscoveryDocumentReference discoveryRef = new DiscoveryDocumentReference(); |
|
discoveryRef.Url = updateFromUrl; |
|
protocol.References.Add(discoveryRef); |
|
|
|
ContractReference contractRef = new ContractReference(); |
|
contractRef.Url = "http://localhost/test.asmx?wsdl"; |
|
contractRef.ClientProtocol = new DiscoveryClientProtocol(); |
|
ServiceDescription desc = new ServiceDescription(); |
|
contractRef.ClientProtocol.Documents.Add(contractRef.Url, desc); |
|
protocol.References.Add(contractRef); |
|
|
|
WebReferenceTestHelper.InitializeProjectBindings(); |
|
|
|
webReference = new SD.WebReference(project, updateFromUrl, name, proxyNamespace, protocol); |
|
|
|
webReferenceUrl = webReference.WebReferenceUrl; |
|
discoFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\test.disco", ItemType.None); |
|
referenceMapFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.map", ItemType.None); |
|
wsdlFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\test.wsdl", ItemType.None); |
|
proxyFileProjectItem = WebReferenceTestHelper.GetFileProjectItem(webReference.Items, "Web References\\localhost\\Reference.cs", ItemType.Compile); |
|
webReferencesProjectItem = (WebReferencesProjectItem)WebReferenceTestHelper.GetProjectItem(webReference.Items, "Web References\\", ItemType.WebReferences); |
|
webServicesReferenceProjectItem = (ReferenceProjectItem)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.Reference); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceInProjectItems() |
|
{ |
|
Assert.IsNotNull((WebReferenceUrl)WebReferenceTestHelper.GetProjectItem(webReference.Items, ItemType.WebReferenceUrl)); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceInclude() |
|
{ |
|
Assert.AreEqual(updateFromUrl, webReferenceUrl.Include); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceHasProject() |
|
{ |
|
Assert.IsNotNull(webReferenceUrl.Project); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceHasWebReferencesProjectItem() |
|
{ |
|
Assert.IsNotNull(webReference.WebReferencesProjectItem); |
|
} |
|
|
|
[Test] |
|
public void WebReferencesDirectory() |
|
{ |
|
Assert.AreEqual("C:\\projects\\test\\Web References", webReferencesProjectItem.Directory); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceUpdateFromUrl() |
|
{ |
|
Assert.AreEqual(updateFromUrl, webReferenceUrl.UpdateFromURL); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceUrlBehaviour() |
|
{ |
|
Assert.AreEqual("Static", webReferenceUrl.UrlBehavior); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceUrlNamespace() |
|
{ |
|
Assert.AreEqual(proxyNamespace, webReferenceUrl.Namespace); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceRelPath() |
|
{ |
|
Assert.AreEqual("Web References\\localhost", webReferenceUrl.RelPath); |
|
} |
|
|
|
[Test] |
|
public void WebReferenceDirectory() |
|
{ |
|
Assert.AreEqual("C:\\projects\\test\\Web References\\localhost", webReference.Directory); |
|
} |
|
|
|
[Test] |
|
public void DiscoFileItemExists() |
|
{ |
|
Assert.IsNotNull(discoFileProjectItem); |
|
} |
|
|
|
[Test] |
|
public void WsdlFileItemHasProject() |
|
{ |
|
Assert.IsNotNull(wsdlFileProjectItem.Project); |
|
} |
|
|
|
[Test] |
|
public void ReferenceMapFileItemGeneratorProperty() |
|
{ |
|
Assert.AreEqual("MSDiscoCodeGenerator", referenceMapFileProjectItem.GetEvaluatedMetadata("Generator")); |
|
} |
|
|
|
[Test] |
|
public void ReferenceMapFileItemLastGenOutputProperty() |
|
{ |
|
Assert.AreEqual("Reference.cs", referenceMapFileProjectItem.GetEvaluatedMetadata("LastGenOutput")); |
|
} |
|
|
|
[Test] |
|
public void ReferenceMapFileItemHasProject() |
|
{ |
|
Assert.IsNotNull(referenceMapFileProjectItem.Project); |
|
} |
|
|
|
[Test] |
|
public void ProxyFileItemAutoGenProperty() |
|
{ |
|
Assert.AreEqual("True", proxyFileProjectItem.GetEvaluatedMetadata("AutoGen")); |
|
} |
|
|
|
[Test] |
|
public void ProxyFileItemDesignTimeProperty() |
|
{ |
|
Assert.AreEqual("True", proxyFileProjectItem.GetEvaluatedMetadata("DesignTime")); |
|
} |
|
|
|
[Test] |
|
public void ProxyFileName() |
|
{ |
|
Assert.AreEqual("C:\\projects\\test\\Web References\\localhost\\Reference.cs", webReference.WebProxyFileName); |
|
} |
|
|
|
[Test] |
|
public void ProxyFileItemDependentUpon() |
|
{ |
|
Assert.AreEqual("Reference.map", proxyFileProjectItem.DependentUpon); |
|
} |
|
|
|
[Test] |
|
public void ProxyFileItemHasProject() |
|
{ |
|
Assert.IsNotNull(proxyFileProjectItem.Project); |
|
} |
|
|
|
[Test] |
|
public void WebReferencesItemHasProject() |
|
{ |
|
Assert.IsNotNull(webReferencesProjectItem.Project); |
|
} |
|
|
|
[Test] |
|
public void WebServicesReferenceItemHasProject() |
|
{ |
|
Assert.IsNotNull(webServicesReferenceProjectItem.Project); |
|
} |
|
|
|
[Test] |
|
public void WebServicesReferenceItemInclude() |
|
{ |
|
Assert.AreEqual("System.Web.Services", webServicesReferenceProjectItem.Include); |
|
} |
|
|
|
[Test] |
|
public void WebReferencesFolder() |
|
{ |
|
Assert.AreEqual("C:\\projects\\test\\Web References", webReference.WebReferencesDirectory); |
|
} |
|
} |
|
}
|
|
|