Repository navigation
Expand file tree
/
Copy pathQuick.Core.Commandline.Tests.pas
More file actions
157 lines (140 loc) · 3.77 KB
/
Copy pathQuick.Core.Commandline.Tests.pas
File metadata and controls
157 lines (140 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
unit Quick.Core.Commandline.Tests;
{ Tests: T-CMD-01..08
T-CMD-01 TCommandline<TServiceParameters> Value returns non-nil
T-CMD-02 TCommandline<TServiceParameters> Install defaults to False
T-CMD-03 TCommandline<TServiceParameters> Remove defaults to False
T-CMD-04 TCommandline<TServiceParameters> Console defaults to False
T-CMD-05 TCommandline<TServiceParameters> Silent defaults to False
T-CMD-06 TServiceParameters is a TParameters subclass
T-CMD-07 A second TCommandline instance is independent of the first
T-CMD-08 TCommandline<TServiceParameters> Value is stable across calls
}
interface
uses
DUnitX.TestFramework,
System.SysUtils,
Quick.Core.Commandline;
type
[TestFixture]
TCommandlineTests = class
public
[Test]
procedure T_CMD_01_Value_NonNil;
[Test]
procedure T_CMD_02_Install_DefaultFalse;
[Test]
procedure T_CMD_03_Remove_DefaultFalse;
[Test]
procedure T_CMD_04_Console_DefaultFalse;
[Test]
procedure T_CMD_05_Silent_DefaultFalse;
[Test]
procedure T_CMD_06_Value_IsServiceParameters;
[Test]
procedure T_CMD_07_TwoInstances_AreIndependent;
[Test]
procedure T_CMD_08_Value_StableAcrossCalls;
end;
implementation
{ TCommandlineTests }
procedure TCommandlineTests.T_CMD_01_Value_NonNil;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsNotNull(cmd.Value, 'TCommandline.Value should not be nil');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_02_Install_DefaultFalse;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsFalse(cmd.Value.Install,
'Install should default to False when not passed on command line');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_03_Remove_DefaultFalse;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsFalse(cmd.Value.Remove,
'Remove should default to False');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_04_Console_DefaultFalse;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsFalse(cmd.Value.Console,
'Console should default to False');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_05_Silent_DefaultFalse;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsFalse(cmd.Value.Silent,
'Silent should default to False');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_06_Value_IsServiceParameters;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.IsTrue(cmd.Value is TServiceParameters,
'Value should be an instance of TServiceParameters');
finally
cmd.Free;
end;
end;
procedure TCommandlineTests.T_CMD_07_TwoInstances_AreIndependent;
var
cmd1 : TCommandline<TServiceParameters>;
cmd2 : TCommandline<TServiceParameters>;
begin
cmd1 := TCommandline<TServiceParameters>.Create;
cmd2 := TCommandline<TServiceParameters>.Create;
try
Assert.AreNotSame(cmd1.Value, cmd2.Value,
'Two separate TCommandline instances should have independent Value objects');
finally
cmd2.Free;
cmd1.Free;
end;
end;
procedure TCommandlineTests.T_CMD_08_Value_StableAcrossCalls;
var
cmd : TCommandline<TServiceParameters>;
begin
cmd := TCommandline<TServiceParameters>.Create;
try
Assert.AreSame(cmd.Value, cmd.Value,
'Value should return the same instance on repeated calls');
finally
cmd.Free;
end;
end;
initialization
TDUnitX.RegisterTestFixture(TCommandlineTests);
end.