From b27c523f0ae5af851885d0684e9d531248c2aca9 Mon Sep 17 00:00:00 2001 From: Oleg Nenashev Date: Wed, 4 Jan 2017 23:14:49 +0100 Subject: [PATCH] Issue #178 - Add unit tests for argument ant arguments config entries --- src/Test/winswTests/ServiceDescriptorTests.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/Test/winswTests/ServiceDescriptorTests.cs b/src/Test/winswTests/ServiceDescriptorTests.cs index eb81238..9570718 100644 --- a/src/Test/winswTests/ServiceDescriptorTests.cs +++ b/src/Test/winswTests/ServiceDescriptorTests.cs @@ -311,5 +311,49 @@ namespace winswTests var sd = ConfigXmlBuilder.create().WithTag("stoptimeout", "35 secs").ToServiceDescriptor(true); Assert.That(sd.StopTimeout, Is.EqualTo(TimeSpan.FromSeconds(35))); } + + /// + /// https://github.com/kohsuke/winsw/issues/178 + /// + [Test] + public void Arguments_LegacyParam() + { + var sd = ConfigXmlBuilder.create().WithTag("arguments", "arg").ToServiceDescriptor(true); + Assert.That(sd.Arguments, Is.EqualTo("arg")); + } + + [Test] + public void Arguments_NewParam_Single() + { + var sd = ConfigXmlBuilder.create() + .WithTag("argument", "--arg1=2") + .ToServiceDescriptor(true); + Assert.That(sd.Arguments, Is.EqualTo(" --arg1=2")); + } + + [Test] + public void Arguments_NewParam_MultipleArgs() + { + var sd = ConfigXmlBuilder.create() + .WithTag("argument", "--arg1=2") + .WithTag("argument", "--arg2=123") + .WithTag("argument", "--arg3=null") + .ToServiceDescriptor(true); + Assert.That(sd.Arguments, Is.EqualTo(" --arg1=2 --arg2=123 --arg3=null")); + } + + /// + /// Ensures that the new single-argument field has a higher priority. + /// + [Test] + public void Arguments_Bothparam_Priorities() + { + var sd = ConfigXmlBuilder.create() + .WithTag("arguments", "--arg1=2 --arg2=3") + .WithTag("argument", "--arg2=123") + .WithTag("argument", "--arg3=null") + .ToServiceDescriptor(true); + Assert.That(sd.Arguments, Is.EqualTo(" --arg2=123 --arg3=null")); + } } }