Browse Source

When generating a service reference only update the project after svcutil has finishing executing and successfully generates the reference.

pull/6/merge
Matt Ward 13 years ago
parent
commit
b653ce30d6
  1. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  2. 9
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AddServiceReferenceViewModel.cs
  3. 21
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/GeneratorCompleteEventArgs.cs
  4. 2
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/IServiceReferenceProxyGenerator.cs
  5. 2
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceFileGenerator.cs
  6. 49
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceGenerator.cs
  7. 5
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceProxyGenerator.cs
  8. 7
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/SvcUtilRunner.cs
  9. 115
      src/Main/Base/Test/ServiceReferences/ServiceReferenceGeneratorTests.cs

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -273,6 +273,7 @@ @@ -273,6 +273,7 @@
</Compile>
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\AdvancedServiceViewModel.cs" />
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\ClientOptions.cs" />
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\GeneratorCompleteEventArgs.cs" />
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\IActiveTextEditors.cs" />
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\IFileSystem.cs" />
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ServiceReference\IProjectWithServiceReferences.cs" />

9
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AddServiceReferenceViewModel.cs

@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
{
this.project = project;
this.serviceGenerator = new ServiceReferenceGenerator(project);
this.serviceGenerator.Complete += ServiceReferenceGenerated;
this.assemblyReferences = serviceGenerator.GetCheckableAssemblyReferences().ToList();
HeadLine = header;
@ -112,6 +113,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -112,6 +113,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
discoveryUri = uri;
serviceReferenceDiscoveryClient.Discover(uri);
}
void ServiceReferenceGenerated(object sender, GeneratorCompleteEventArgs e)
{
if (e.IsSuccess) {
new RefreshProjectBrowser().Run();
}
}
void ServiceReferenceDiscoveryComplete(object sender, ServiceReferenceDiscoveryEventArgs e)
{
@ -295,7 +303,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -295,7 +303,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
serviceGenerator.Options.ServiceName = defaultNameSpace;
serviceGenerator.Options.Url = uri.ToString();
serviceGenerator.AddServiceReference();
new RefreshProjectBrowser().Run();
} catch (Exception ex) {
ICSharpCode.Core.LoggingService.Error("Failed to add service reference.", ex);
}

21
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/GeneratorCompleteEventArgs.cs

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
// 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 System;
namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
{
public class GeneratorCompleteEventArgs : EventArgs
{
public GeneratorCompleteEventArgs(int exitCode)
{
this.ExitCode = exitCode;
}
public bool IsSuccess {
get { return ExitCode == 0; }
}
public int ExitCode { get; set; }
}
}

2
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/IServiceReferenceProxyGenerator.cs

@ -11,6 +11,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -11,6 +11,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
ServiceReferenceGeneratorOptions Options { get; set; }
void GenerateProxyFile();
event EventHandler Complete;
event EventHandler<GeneratorCompleteEventArgs> Complete;
}
}

2
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceFileGenerator.cs

@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
mapGenerator.GenerateServiceReferenceMapFile(mapFile);
}
public event EventHandler Complete {
public event EventHandler<GeneratorCompleteEventArgs> Complete {
add { proxyGenerator.Complete += value; }
remove { proxyGenerator.Complete += value; }
}

49
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceGenerator.cs

@ -18,6 +18,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -18,6 +18,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
IFileSystem fileSystem;
IActiveTextEditors activeTextEditors;
string tempAppConfigFileName;
ServiceReferenceFileName referenceFileName;
public ServiceReferenceGenerator(IProject project)
: this(new ProjectWithServiceReferences(project))
@ -50,25 +51,21 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -50,25 +51,21 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
set { fileGenerator.Options = value; }
}
public void AddServiceReference()
public event EventHandler<GeneratorCompleteEventArgs> Complete;
void OnComplete(GeneratorCompleteEventArgs e)
{
GenerateServiceReferenceProxy();
project.AddAssemblyReference("System.ServiceModel");
project.Save();
if (Complete != null) {
Complete(this, e);
}
}
void GenerateServiceReferenceProxy()
public void AddServiceReference()
{
ServiceReferenceFileName referenceFileName = GenerateProxyFile();
ServiceReferenceMapFileName mapFileName = CreateServiceReferenceMapFile();
project.AddServiceReferenceProxyFile(referenceFileName);
project.AddServiceReferenceMapFile(mapFileName);
if (!project.HasAppConfigFile()) {
project.AddAppConfigFile();
}
referenceFileName = StartProxyFileGeneration();
}
ServiceReferenceFileName GenerateProxyFile()
ServiceReferenceFileName StartProxyFileGeneration()
{
ServiceReferenceFileName referenceFileName = project.GetServiceReferenceFileName(fileGenerator.Options.ServiceName);
CreateFolderForFileIfFolderMissing(referenceFileName.Path);
@ -119,12 +116,34 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -119,12 +116,34 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
fileSystem.CreateDirectoryIfMissing(folder);
}
void ProxyFileGenerationComplete(object sender, EventArgs e)
void ProxyFileGenerationComplete(object sender, GeneratorCompleteEventArgs e)
{
if (e.IsSuccess) {
UpdateProjectWithGeneratedServiceReference();
}
if (tempAppConfigFileName != null) {
UpdateAppConfigInTextEditor();
if (e.IsSuccess) {
UpdateAppConfigInTextEditor();
}
DeleteTempAppConfigFile();
}
OnComplete(e);
}
void UpdateProjectWithGeneratedServiceReference()
{
ServiceReferenceMapFileName mapFileName = CreateServiceReferenceMapFile();
project.AddServiceReferenceProxyFile(referenceFileName);
project.AddServiceReferenceMapFile(mapFileName);
project.AddAssemblyReference("System.ServiceModel");
if (!project.HasAppConfigFile()) {
project.AddAppConfigFile();
}
project.Save();
}
void DeleteTempAppConfigFile()

5
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceProxyGenerator.cs

@ -24,12 +24,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -24,12 +24,13 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
runner.Run();
}
public event EventHandler Complete;
public event EventHandler<GeneratorCompleteEventArgs> Complete;
void OnComplete(object sender, EventArgs e)
{
if (Complete != null) {
Complete(this, e);
var runner = (SvcUtilRunner)sender;
Complete(this, new GeneratorCompleteEventArgs(runner.ExitCode));
}
}
}

7
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/SvcUtilRunner.cs

@ -7,7 +7,7 @@ using ICSharpCode.SharpDevelop.Util; @@ -7,7 +7,7 @@ using ICSharpCode.SharpDevelop.Util;
namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
{
public class SvcUtilRunner
{
{
public SvcUtilRunner(ServiceReferenceGeneratorOptions options)
{
this.Options = options;
@ -17,6 +17,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -17,6 +17,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
public ServiceReferenceGeneratorOptions Options { get; private set; }
public int ExitCode { get; private set; }
public void Run()
{
SvcUtilMessageView.ClearText();
@ -63,6 +65,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -63,6 +65,9 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
{
SvcUtilMessageView.AppendLine("SvcUtil finished.");
var runner = (ProcessRunner)sender;
ExitCode = runner.ExitCode;
WorkbenchSingleton.SafeThreadAsyncCall(() => OnProcessExited());
}

115
src/Main/Base/Test/ServiceReferences/ServiceReferenceGeneratorTests.cs

@ -161,9 +161,20 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -161,9 +161,20 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
.Return(tempFileName);
}
void SvcUtilRunCompleted()
void SvcUtilRunCompletedSuccessfully()
{
fakeProxyGenerator.Raise(g => g.Complete += null, fakeProxyGenerator, new EventArgs());
SvcUtilRunCompleted(exitCode: 0);
}
void SvcUtilRunCompletedWithErrors()
{
SvcUtilRunCompleted(exitCode: 1);
}
void SvcUtilRunCompleted(int exitCode)
{
var eventArgs = new GeneratorCompleteEventArgs(exitCode);
fakeProxyGenerator.Raise(g => g.Complete += null, fakeProxyGenerator, eventArgs);
}
void SetTempFileText(string fileName, string text)
@ -184,6 +195,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -184,6 +195,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
fakeProxyGenerator.AssertWasCalled(p => p.GenerateProxyFile());
}
@ -196,6 +209,9 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -196,6 +209,9 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.Options.ServiceName = "MyServiceRef";
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
string expectedProxyFileName = @"d:\projects\MyProject\Service References\MyServiceRef\Reference.cs";
Assert.AreEqual(expectedProxyFileName, fakeProxyGenerator.Options.OutputFileName);
@ -211,6 +227,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -211,6 +227,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
string expectedDirectory = @"d:\projects\MyProject\Service References\MyService1";
fakeFileSystem.AssertWasCalled(f => f.CreateDirectoryIfMissing(expectedDirectory));
@ -227,6 +244,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -227,6 +244,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
fakeProject.AssertWasCalled(p => p.AddServiceReferenceProxyFile(expectedProxyFileName));
}
@ -240,6 +259,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -240,6 +259,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
fakeProject.AssertWasCalled(p => p.Save());
}
@ -253,6 +274,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -253,6 +274,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
var expectedMapFile = new ServiceReferenceMapFile() {
FileName = @"d:\projects\MyProject\Service References\MyServiceRef\Reference.svcmap"
};
@ -271,6 +294,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -271,6 +294,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
fakeProject.AssertWasCalled(p => p.AddServiceReferenceMapFile(expectedMapFileName));
}
@ -284,6 +309,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -284,6 +309,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
fakeProject.AssertWasCalled(p => p.AddAssemblyReference("System.ServiceModel"));
}
@ -301,6 +328,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -301,6 +328,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
mi => fakeProject.AssertWasCalled(p => p.AddAssemblyReference("System.ServiceModel"))));
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
}
[Test]
@ -314,6 +343,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -314,6 +343,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual("Test.MyServiceRef", fakeProxyGenerator.Options.Namespace);
}
@ -328,6 +359,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -328,6 +359,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual("MyServiceRef", fakeProxyGenerator.Options.Namespace);
}
@ -342,6 +375,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -342,6 +375,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual("CS", fakeProxyGenerator.Options.Language);
}
@ -356,6 +391,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -356,6 +391,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual("VB", fakeProxyGenerator.Options.Language);
}
@ -373,6 +410,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -373,6 +410,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual(expectedAppConfigFileName, fakeProxyGenerator.Options.AppConfigFileName);
Assert.IsFalse(fakeProxyGenerator.Options.NoAppConfig);
Assert.IsFalse(fakeProxyGenerator.Options.MergeAppConfig);
@ -393,6 +432,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -393,6 +432,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual(expectedAppConfigFileName, fakeProxyGenerator.Options.AppConfigFileName);
Assert.IsFalse(fakeProxyGenerator.Options.NoAppConfig);
Assert.IsTrue(fakeProxyGenerator.Options.MergeAppConfig);
@ -413,6 +454,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -413,6 +454,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
string[] expectedReferences = new string[] {
"System.Windows.Forms",
@"d:\projects\MyProject\lib\MyLib.dll"
@ -435,6 +478,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -435,6 +478,8 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompletedSuccessfully();
Assert.AreEqual(0, fakeProxyGenerator.Options.Assemblies.Count);
}
@ -558,7 +603,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -558,7 +603,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompleted();
SvcUtilRunCompletedSuccessfully();
fakeActiveTextEditors.AssertWasCalled(editors => editors.UpdateTextForOpenFile(appConfigFileName, "New appconfig text"));
}
@ -576,7 +621,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -576,7 +621,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompleted();
SvcUtilRunCompletedSuccessfully();
fakeActiveTextEditors.AssertWasNotCalled(editors => editors.UpdateTextForOpenFile(Arg<string>.Is.Anything, Arg<string>.Is.Anything));
}
@ -596,7 +641,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -596,7 +641,7 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
generator.AddServiceReference();
SvcUtilRunCompleted();
SvcUtilRunCompletedSuccessfully();
fakeFileSystem.AssertWasCalled(fs => fs.DeleteFile(@"d:\temp\test.tmp"));
}
@ -618,10 +663,68 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences @@ -618,10 +663,68 @@ namespace ICSharpCode.SharpDevelop.Tests.ServiceReferences
AppConfigIsClosedInTextEditor(appConfigFileName);
SvcUtilRunCompleted();
SvcUtilRunCompletedSuccessfully();
fakeFileSystem.AssertWasCalled(fs => fs.WriteAllText(appConfigFileName, "New appconfig text"));
fakeActiveTextEditors.AssertWasNotCalled(editors => editors.UpdateTextForOpenFile(Arg<string>.Is.Anything, Arg<string>.Is.Anything));
}
[Test]
public void AddServiceReference_AppConfigIsOriginallyOpenInTextEditorButSvcUtilFails_TempFileAppConfigContentIsNotUpdatedInTextEditor()
{
CreateGenerator();
AddProxyFileNameForServiceName("MyService");
AddMapFileNameForServiceName("MyService");
generator.Options.ServiceName = "MyService";
string appConfigFileName = @"d:\projects\MyProject\app.config";
SetProjectAppConfigFileName(appConfigFileName);
ProjectHasAppConfigFile();
AppConfigIsOpenInTextEditor(appConfigFileName, "appconfig text");
SetTempFileText(@"d:\temp\test.tmp", "New appconfig text");
generator.AddServiceReference();
SvcUtilRunCompletedWithErrors();
fakeActiveTextEditors.AssertWasNotCalled(editors => editors.UpdateTextForOpenFile(Arg<string>.Is.Anything, Arg<string>.Is.Anything));
fakeFileSystem.AssertWasCalled(fs => fs.DeleteFile(@"d:\temp\test.tmp"));
}
[Test]
public void AddServiceReference_SvcUtilFails_ProjectNotUpdatedWithServiceReference()
{
CreateGenerator();
AddProxyFileNameForServiceName(@"d:\MyProject\Service References", "MyServiceRef");
AddMapFileNameForServiceName("MyServiceRef");
generator.Options.ServiceName = "MyServiceRef";
generator.AddServiceReference();
SvcUtilRunCompletedWithErrors();
fakeProject.AssertWasNotCalled(p => p.AddAssemblyReference(Arg<string>.Is.Anything));
fakeProject.AssertWasNotCalled(p => p.Save());
fakeProject.AssertWasNotCalled(p => p.AddServiceReferenceMapFile(Arg<ServiceReferenceMapFileName>.Is.Anything));
fakeProject.AssertWasNotCalled(p => p.AddServiceReferenceProxyFile(Arg<ServiceReferenceFileName>.Is.Anything));
fakeReferenceMapGenerator.AssertWasNotCalled(g => g.GenerateServiceReferenceMapFile(Arg<ServiceReferenceMapFile>.Is.Anything));
}
[Test]
public void AddServiceReference_ProjectHasNoAppConfigButSvcUtilFails_AppConfigNotAddedToProject()
{
CreateGenerator();
AddProxyFileNameForServiceName("MyService");
AddMapFileNameForServiceName("MyService");
generator.Options.ServiceName = "MyService";
UseVisualBasicProject();
SetProjectAppConfigFileName(@"d:\projects\MyProject\app.config");
ProjectDoesNotHaveAppConfigFile();
generator.AddServiceReference();
SvcUtilRunCompletedWithErrors();
fakeProject.AssertWasNotCalled(p => p.AddAppConfigFile());
}
}
}

Loading…
Cancel
Save