[JEDI.NET-commits] nunit/source Jedi.System.CommandLine.NUnit.pas,1.1,1.2
Status: Pre-Alpha
Brought to you by:
jedi_mbe
From: Marcel B. <jed...@us...> - 2005-06-16 13:21:17
|
Update of /cvsroot/jedidotnet/nunit/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1769/nunit/source Modified Files: Jedi.System.CommandLine.NUnit.pas Log Message: * Added test sets for Boolean arguments * Added test sets for Enumeration arguments Index: Jedi.System.CommandLine.NUnit.pas =================================================================== RCS file: /cvsroot/jedidotnet/nunit/source/Jedi.System.CommandLine.NUnit.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.System.CommandLine.NUnit.pas 1 Mar 2005 14:26:41 -0000 1.1 --- Jedi.System.CommandLine.NUnit.pas 16 Jun 2005 13:20:53 -0000 1.2 *************** *** 3,6 **** --- 3,7 ---- interface + {$REGION 'uses'} uses Jedi.System.CommandLine, *************** *** 10,17 **** --- 11,22 ---- System.IO, System.Resources; + {$ENDREGION} + {$REGION 'Helper types'} type ObjectArray = array of &Object; + {$ENDREGION} + {$REGION 'Base test fixture'} type BaseTestFixture = class *************** *** 38,42 **** --- 43,49 ---- [Test] procedure ResponseFile; virtual; end; + {$ENDREGION} + {$REGION 'Testing instance properties'} type InstanceSettings = class *************** *** 74,78 **** --- 81,87 ---- [TearDown] procedure DisposeInstance; end; + {$ENDREGION} + {$REGION 'Testing class properties in multiple classes'} type CompilerSettings = class *************** *** 118,122 **** --- 127,133 ---- [SetUp] procedure Initialize; end; + {$ENDREGION} + {$REGION 'Generic error tests'} type DoubleOptionSettings = class *************** *** 142,146 **** --- 153,159 ---- procedure UnknownArgument; end; + {$ENDREGION} + {$REGION 'Special cases'} type CaseSensitiveSettings = class *************** *** 188,191 **** --- 201,267 ---- [Test] procedure MixedNormalAndCustom; end; + {$ENDREGION} + + {$REGION 'Boolean cases'} + type + SettingsBoolean = class + strict private + class var FNoValueIgnores: Boolean; + class var FNoValueResets: Boolean; + class var FNoValueThrowsException: Boolean; + class var FNoValueToggles: Boolean; + class var FNoValueSets: Boolean; + public + class procedure Initialize; static; + public + [BooleanCommandLineArgument(CaseSensitive = False, Name= 'ignore', Prefix = '-', NoValueAction = Ignore)] + class property NoValueIgnores: Boolean read FNoValueIgnores write FNoValueIgnores; + [BooleanCommandLineArgument(CaseSensitive = False, Name= 'reset', Prefix = '-', NoValueAction = Reset)] + class property NoValueResets: Boolean read FNoValueResets write FNoValueResets; + [BooleanCommandLineArgument(CaseSensitive = False, Name= 'throw', Prefix = '-', NoValueAction = ThrowException)] + class property NoValueThrowsException: Boolean read FNoValueThrowsException write FNoValueThrowsException; + [BooleanCommandLineArgument(CaseSensitive = False, Name= 'toggle', Prefix = '-', NoValueAction = Toggle)] + class property NoValueToggles: Boolean read FNoValueToggles write FNoValueToggles; + [BooleanCommandLineArgument(CaseSensitive = False, Name= 'set', Prefix = '-', NoValueAction = &Set)] + class property NoValueSets: Boolean read FNoValueSets write FNoValueSets; + end; + + [TestFixture] + BooleanCases = class + public + [SetUp] procedure Initialize; + public + [Test] procedure NoValueIgnores; + [Test] procedure NoValueResets; + [ExpectedException(TypeOf(CommandLineException), 'Missing value. Argument: -throw')] + [Test] procedure NoValueThrowsException; + [Test] procedure NoValueToggles; + [Test] procedure NoValueSets; + end; + {$ENDREGION} + + type + EnumType = (None, FirstValue, SecondValue, ThirdValue); + + EnumSettings = class + strict private + class var FTest: EnumType; + public + class procedure Initialize; static; + public + [CommandLineArgument(CaseSensitive = False, Prefix = '-', Name = 'value', ValueSeparator = ':')] + class property Test: EnumType read FTest write FTest; + end; + + [TestFixture] + EnumCases = class + public + [SetUp] procedure Initialize; + public + [Test] procedure Value0; + [Test] procedure Value1; + [Test] procedure Value2; + [Test] procedure Value3; + end; implementation *************** *** 193,198 **** {$AUTOBOX ON} ! { BaseTestFixture } ! procedure BaseTestFixture.CreateDir; var --- 269,273 ---- {$AUTOBOX ON} ! {$REGION 'BaseTestFixture'} procedure BaseTestFixture.CreateDir; var *************** *** 289,295 **** Assert.AreEqual('file to compile.dpk', files[0], 'Wrong filename.'); end; ! { CaseSensitiveSettings } class procedure CaseSensitiveSettings.Initialize; begin --- 364,456 ---- Assert.AreEqual('file to compile.dpk', files[0], 'Wrong filename.'); end; + {$ENDREGION} ! {$REGION 'BooleanCases'} ! procedure BooleanCases.Initialize; ! begin ! SettingsBoolean.Initialize; ! end; ! ! procedure BooleanCases.NoValueIgnores; ! var ! files: array of string; ! begin ! files := CommandLine.Parse( ! 'process -ignore', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (1).'); ! Assert.IsFalse(SettingsBoolean.NoValueIgnores, '-ignore without value should be ignored (1).'); ! ! files := CommandLine.Parse( ! 'process -ignore+ -ignore', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (2).'); ! Assert.IsTrue(SettingsBoolean.NoValueIgnores, '-ignore without value should be ignored (2).'); ! end; ! ! procedure BooleanCases.NoValueResets; ! var ! files: array of string; ! begin ! files := CommandLine.Parse( ! 'process -reset', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (1).'); ! Assert.IsFalse(SettingsBoolean.NoValueResets, '-reset without value should reset (1).'); ! ! files := CommandLine.Parse( ! 'process -reset -reset', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (2).'); ! Assert.IsFalse(SettingsBoolean.NoValueResets, '-reset without value should reset (2).'); ! end; ! ! procedure BooleanCases.NoValueThrowsException; ! var ! files: array of string; ! begin ! files := CommandLine.Parse( ! 'process -throw', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); ! Assert.IsFalse(SettingsBoolean.NoValueThrowsException, '-throw without value should toggle (1).'); ! end; ! ! procedure BooleanCases.NoValueToggles; ! var ! files: array of string; ! begin ! files := CommandLine.Parse( ! 'process -toggle', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (1).'); ! Assert.IsTrue(SettingsBoolean.NoValueToggles, '-toggle without value should toggle (1).'); ! ! files := CommandLine.Parse( ! 'process -toggle', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (2).'); ! Assert.IsFalse(SettingsBoolean.NoValueToggles, '-toggle without value should toggle (2).'); ! end; ! ! procedure BooleanCases.NoValueSets; ! var ! files: array of string; ! begin ! files := CommandLine.Parse( ! 'process -set', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (1).'); ! Assert.IsTrue(SettingsBoolean.NoValueSets, '-set without value should set (1).'); + files := CommandLine.Parse( + 'process -set -set', + [TypeOf(SettingsBoolean)]); + Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned (2).'); + Assert.IsTrue(SettingsBoolean.NoValueSets, '-set without value should set (2).'); + end; + {$ENDREGION} + + {$REGION 'CaseSensitiveSettings'} class procedure CaseSensitiveSettings.Initialize; begin *************** *** 297,303 **** FOrigin := 0; end; ! { CompilerSettings } ! class constructor CompilerSettings.Create; begin --- 458,464 ---- FOrigin := 0; end; + {$ENDREGION} ! {$REGION 'CompilerSettings'} class constructor CompilerSettings.Create; begin *************** *** 309,315 **** FOptimization := False; end; ! { DirectorySettings } ! class constructor DirectorySettings.Create; begin --- 470,476 ---- FOptimization := False; end; + {$ENDREGION} ! {$REGION 'DirectorySettings'} class constructor DirectorySettings.Create; begin *************** *** 323,329 **** FUnitOutputPath := ''; end; ! { Errors } procedure Errors.DoubleOptions; begin --- 484,549 ---- FUnitOutputPath := ''; end; + {$ENDREGION} ! {$REGION 'EnumCases'} ! procedure EnumCases.Initialize; ! begin ! EnumSettings.Initialize; ! end; + procedure EnumCases.Value0; + var + files: array of string; + begin + EnumSettings.Test := ThirdValue; + files := CommandLine.Parse( + 'process -value:None', + [TypeOf(EnumSettings)]); + Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); + Assert.AreEqual(EnumType.None, EnumSettings.Test, 'Test value error.'); + end; + + procedure EnumCases.Value1; + var + files: array of string; + begin + files := CommandLine.Parse( + 'process -value:FirstValue', + [TypeOf(EnumSettings)]); + Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); + Assert.AreEqual(EnumType.FirstValue, EnumSettings.Test, 'Test value error.'); + end; + + procedure EnumCases.Value2; + var + files: array of string; + begin + files := CommandLine.Parse( + 'process -value:secondvalue', + [TypeOf(EnumSettings)]); + Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); + Assert.AreEqual(EnumType.SecondValue, EnumSettings.Test, 'Test value error.'); + end; + + procedure EnumCases.Value3; + var + files: array of string; + begin + files := CommandLine.Parse( + 'process -value:ThirdValue', + [TypeOf(EnumSettings)]); + Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); + Assert.AreEqual(EnumType.ThirdValue, EnumSettings.Test, 'Test value error.'); + end; + {$ENDREGION} + + {$REGION 'EnumSettings'} + class procedure EnumSettings.Initialize; + begin + FTest := None; + end; + {$ENDREGION} + + {$REGION 'Errors'} procedure Errors.DoubleOptions; begin *************** *** 344,350 **** [TypeOf(CompilerSettings), TypeOf(DirectorySettings)]); end; ! { InstanceSettings } ! constructor InstanceSettings.Create; begin --- 564,570 ---- [TypeOf(CompilerSettings), TypeOf(DirectorySettings)]); end; + {$ENDREGION} ! {$REGION 'InstanceSettings'} constructor InstanceSettings.Create; begin *************** *** 354,360 **** FUnitOutputPath := ''; end; ! { SettingsCustomProcessing } ! class procedure SettingsCustomProcessing.ProcessSize(match, commandLine: string; var index: Integer); var --- 574,580 ---- FUnitOutputPath := ''; end; + {$ENDREGION} ! {$REGION 'SettingsCustomProcessing'} class procedure SettingsCustomProcessing.ProcessSize(match, commandLine: string; var index: Integer); var *************** *** 403,409 **** FSize := System.Drawing.Size.Create(value, FSize.Height); end; ! { SpecialCases } procedure SpecialCases.CaseSensitive; begin --- 623,640 ---- FSize := System.Drawing.Size.Create(value, FSize.Height); end; + {$ENDREGION} ! {$REGION 'SettingsBoolean'} ! class procedure SettingsBoolean.Initialize; ! begin ! SettingsBoolean.FNoValueIgnores := False; ! SettingsBoolean.FNoValueResets := True; ! SettingsBoolean.FNoValueThrowsException := False; ! SettingsBoolean.FNoValueToggles := False; ! SettingsBoolean.FNoValueSets := False; ! end; ! {$ENDREGION} + {$REGION 'SpecialCases'} procedure SpecialCases.CaseSensitive; begin *************** *** 429,435 **** Assert.AreEqual(32, SettingsCustomProcessing.Height, 'Height not set correctly by -size option.'); end; ! { ToInstance } ! function ToInstance.AssemblyOutputPath: string; begin --- 660,666 ---- Assert.AreEqual(32, SettingsCustomProcessing.Height, 'Height not set correctly by -size option.'); end; + {$ENDREGION} ! {$REGION 'ToInstance'} function ToInstance.AssemblyOutputPath: string; begin *************** *** 467,473 **** Result := FInstance.UnitOutputPath; end; ! { ToMultipleClasses } ! function ToMultipleClasses.AssemblyOutputPath: string; begin --- 698,704 ---- Result := FInstance.UnitOutputPath; end; + {$ENDREGION} ! {$REGION 'ToMultipleClasses'} function ToMultipleClasses.AssemblyOutputPath: string; begin *************** *** 500,503 **** --- 731,735 ---- Result := DirectorySettings.UnitOutputPath; end; + {$ENDREGION} end. |