Skip to content

Commit c2272c8

Browse files
committed
removed duplicate fluent methods from interfaces & implementations
1 parent 6174f86 commit c2272c8

10 files changed

Lines changed: 71 additions & 130 deletions

File tree

TestStack.BDDfy/Scanners/StepScanners/Fluent/FluentScanner.cs

Lines changed: 14 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ IGiven<TScenario> IInitialStep<TScenario>.Given(Expression<Func<TScenario, Task>
6161
return this;
6262
}
6363

64-
IWhen<TScenario> IInitialStep<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate)
64+
IWhen<TScenario> IWhenSteps<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate)
6565
{
6666
AddStep(whenStep, stepTextTemplate, false, ExecutionOrder.Transition);
6767
return this;
@@ -73,13 +73,13 @@ IGiven<TScenario> IInitialStep<TScenario>.Given(Expression<Func<TScenario, Task>
7373
return this;
7474
}
7575

76-
IWhen<TScenario> IInitialStep<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle)
76+
IWhen<TScenario> IWhenSteps<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle)
7777
{
7878
AddStep(whenStep, null, false, ExecutionOrder.Transition, includeInputsInStepTitle: includeInputsInStepTitle);
7979
return this;
8080
}
8181

82-
IThen<TScenario> IWhen<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate)
82+
IThen<TScenario> IThenSteps<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate)
8383
{
8484
AddStep(thenStep, stepTextTemplate, true, ExecutionOrder.Assertion);
8585
return this;
@@ -103,7 +103,7 @@ IAndWhen<TScenario> IWhen<TScenario>.And(Expression<Func<TScenario, Task>> andWh
103103
return this;
104104
}
105105

106-
IThen<TScenario> IWhen<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle)
106+
IThen<TScenario> IThenSteps<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle)
107107
{
108108
AddStep(thenStep, null, true, ExecutionOrder.Assertion, includeInputsInStepTitle: includeInputsInStepTitle);
109109
return this;
@@ -115,12 +115,6 @@ IAndGiven<TScenario> IGiven<TScenario>.And(Expression<Func<TScenario, Task>> and
115115
return this;
116116
}
117117

118-
IThen<TScenario> IGiven<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle)
119-
{
120-
AddStep(thenStep, null, true, ExecutionOrder.Assertion, includeInputsInStepTitle: includeInputsInStepTitle);
121-
return this;
122-
}
123-
124118
IAndGiven<TScenario> IGiven<TScenario>.And(Expression<Func<TScenario, Task>> andGivenStep, string stepTextTemplate)
125119
{
126120
AddStep(andGivenStep, stepTextTemplate, false, ExecutionOrder.ConsecutiveSetupState);
@@ -133,25 +127,7 @@ IAndWhen<TScenario> IWhen<TScenario>.And(Expression<Func<TScenario, Task>> andWh
133127
return this;
134128
}
135129

136-
IThen<TScenario> IGiven<TScenario>.Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate)
137-
{
138-
AddStep(thenStep, stepTextTemplate, true, ExecutionOrder.Assertion);
139-
return this;
140-
}
141-
142-
IWhen<TScenario> IGiven<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle)
143-
{
144-
AddStep(whenStep, null, false, ExecutionOrder.Transition, includeInputsInStepTitle: includeInputsInStepTitle);
145-
return this;
146-
}
147-
148-
IWhen<TScenario> IGiven<TScenario>.When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate)
149-
{
150-
AddStep(whenStep, stepTextTemplate, false, ExecutionOrder.Transition);
151-
return this;
152-
}
153-
154-
IFluentScanner<TScenario> IFluentScanner<TScenario>.TearDownWith(Expression<Func<TScenario, Task>> tearDownStep)
130+
IStepsBase<TScenario> IStepsBase<TScenario>.TearDownWith(Expression<Func<TScenario, Task>> tearDownStep)
155131
{
156132
AddStep(tearDownStep, null, false, ExecutionOrder.TearDown, false);
157133
return this;
@@ -236,19 +212,19 @@ public IGiven<TScenario> Given(string title)
236212
return this;
237213
}
238214

239-
IWhen<TScenario> IInitialStep<TScenario>.When(Expression<Action<TScenario>> whenStep, string stepTextTemplate)
215+
IWhen<TScenario> IWhenSteps<TScenario>.When(Expression<Action<TScenario>> whenStep, string stepTextTemplate)
240216
{
241217
AddStep(whenStep, stepTextTemplate, false, ExecutionOrder.Transition);
242218
return this;
243219
}
244220

245-
IWhen<TScenario> IInitialStep<TScenario>.When(Action whenStep, string title)
221+
IWhen<TScenario> IWhenSteps<TScenario>.When(Action whenStep, string title)
246222
{
247223
AddStep(whenStep, title, false, ExecutionOrder.Transition);
248224
return this;
249225
}
250226

251-
IWhen<TScenario> IInitialStep<TScenario>.When(string title)
227+
IWhen<TScenario> IWhenSteps<TScenario>.When(string title)
252228
{
253229
AddStep(() => { }, title, false, ExecutionOrder.Transition);
254230
return this;
@@ -260,7 +236,7 @@ IGiven<TScenario> IInitialStep<TScenario>.Given(Expression<Action<TScenario>> gi
260236
return this;
261237
}
262238

263-
IWhen<TScenario> IInitialStep<TScenario>.When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle)
239+
IWhen<TScenario> IWhenSteps<TScenario>.When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle)
264240
{
265241
AddStep(whenStep, null, false,ExecutionOrder.Transition, includeInputsInStepTitle: includeInputsInStepTitle);
266242
return this;
@@ -272,7 +248,7 @@ IAndGiven<TScenario> IGiven<TScenario>.And(Expression<Action<TScenario>> andGive
272248
return this;
273249
}
274250

275-
IThen<TScenario> IWhen<TScenario>.Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle)
251+
IThen<TScenario> IThenSteps<TScenario>.Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle)
276252
{
277253
AddStep(thenStep, null, true, ExecutionOrder.Assertion, includeInputsInStepTitle:includeInputsInStepTitle);
278254
return this;
@@ -284,12 +260,6 @@ IAndWhen<TScenario> IWhen<TScenario>.And(Expression<Action<TScenario>> andWhenSt
284260
return this;
285261
}
286262

287-
IThen<TScenario> IGiven<TScenario>.Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle)
288-
{
289-
AddStep(thenStep, null, true, ExecutionOrder.Assertion, includeInputsInStepTitle:includeInputsInStepTitle);
290-
return this;
291-
}
292-
293263
IAndGiven<TScenario> IGiven<TScenario>.And(Expression<Action<TScenario>> andGivenStep, string stepTextTemplate)
294264
{
295265
AddStep(andGivenStep, stepTextTemplate, false, ExecutionOrder.ConsecutiveSetupState);
@@ -314,48 +284,30 @@ IAndThen<TScenario> IThen<TScenario>.And(Expression<Action<TScenario>> andThenSt
314284
return this;
315285
}
316286

317-
IThen<TScenario> IWhen<TScenario>.Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate)
287+
IThen<TScenario> IThenSteps<TScenario>.Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate)
318288
{
319289
AddStep(thenStep, stepTextTemplate, true, ExecutionOrder.Assertion);
320290
return this;
321291
}
322292

323-
IThen<TScenario> IWhen<TScenario>.Then(Action thenStep, string title)
293+
IThen<TScenario> IThenSteps<TScenario>.Then(Action thenStep, string title)
324294
{
325295
AddStep(thenStep, title, true, ExecutionOrder.Assertion);
326296
return this;
327297
}
328298

329-
IThen<TScenario> IWhen<TScenario>.Then(string title)
299+
IThen<TScenario> IThenSteps<TScenario>.Then(string title)
330300
{
331301
AddStep(() => { }, title, true, ExecutionOrder.Assertion);
332302
return this;
333303
}
334304

335-
IWhen<TScenario> IGiven<TScenario>.When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle)
336-
{
337-
AddStep(whenStep, null, false, ExecutionOrder.Transition, includeInputsInStepTitle: includeInputsInStepTitle);
338-
return this;
339-
}
340-
341305
IAndWhen<TScenario> IWhen<TScenario>.And(Expression<Action<TScenario>> andWhenStep, string stepTextTemplate)
342306
{
343307
AddStep(andWhenStep, stepTextTemplate, false, ExecutionOrder.ConsecutiveTransition);
344308
return this;
345309
}
346310

347-
IThen<TScenario> IGiven<TScenario>.Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate)
348-
{
349-
AddStep(thenStep, stepTextTemplate, true, ExecutionOrder.Assertion);
350-
return this;
351-
}
352-
353-
IWhen<TScenario> IGiven<TScenario>.When(Expression<Action<TScenario>> whenStep, string stepTextTemplate)
354-
{
355-
AddStep(whenStep, stepTextTemplate, false, ExecutionOrder.Transition);
356-
return this;
357-
}
358-
359311
IAndThen<TScenario> IThen<TScenario>.And(Expression<Action<TScenario>> andThenStep, string stepTextTemplate)
360312
{
361313
AddStep(andThenStep, stepTextTemplate, true, ExecutionOrder.ConsecutiveAssertion);
@@ -374,18 +326,6 @@ IAndWhen<TScenario> IWhen<TScenario>.And(string title)
374326
return this;
375327
}
376328

377-
IWhen<TScenario> IGiven<TScenario>.When(Action whenStep, string title)
378-
{
379-
AddStep(whenStep, title, false, ExecutionOrder.Transition);
380-
return this;
381-
}
382-
383-
IWhen<TScenario> IGiven<TScenario>.When(string title)
384-
{
385-
AddStep(() => { }, title, false, ExecutionOrder.Transition);
386-
return this;
387-
}
388-
389329
IAndThen<TScenario> IThen<TScenario>.And(Action andThenStep, string title)
390330
{
391331
AddStep(andThenStep, title, true, ExecutionOrder.ConsecutiveAssertion);
@@ -398,7 +338,7 @@ IAndThen<TScenario> IThen<TScenario>.And(string title)
398338
return this;
399339
}
400340

401-
IFluentScanner<TScenario> IFluentScanner<TScenario>.TearDownWith(Expression<Action<TScenario>> tearDownStep)
341+
IStepsBase<TScenario> IStepsBase<TScenario>.TearDownWith(Expression<Action<TScenario>> tearDownStep)
402342
{
403343
AddStep(tearDownStep, null, false, ExecutionOrder.TearDown, false);
404344
return this;

TestStack.BDDfy/Scanners/StepScanners/Fluent/IFluentScanner.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

TestStack.BDDfy/Scanners/StepScanners/Fluent/IGiven.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,13 @@
44

55
namespace TestStack.BDDfy
66
{
7-
public interface IGiven<TScenario>
7+
public interface IGiven<TScenario> : IWhenSteps<TScenario>, IThenSteps<TScenario>
88
{
9-
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle);
10-
IWhen<TScenario> When(Action whenStep, string title);
11-
IWhen<TScenario> When(string title);
12-
139
IAndGiven<TScenario> And(Expression<Action<TScenario>> andGivenStep, bool includeInputsInStepTitle);
1410
IAndGiven<TScenario> And(Action andGivenStep, string title);
1511
IAndGiven<TScenario> And(string title);
16-
17-
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle);
18-
19-
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, string stepTextTemplate = null);
2012
IAndGiven<TScenario> And(Expression<Action<TScenario>> andGivenStep, string stepTextTemplate = null);
21-
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate = null);
22-
23-
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate = null);
2413
IAndGiven<TScenario> And(Expression<Func<TScenario, Task>> andGivenStep, string stepTextTemplate = null);
25-
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate = null);
26-
27-
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle);
2814
IAndGiven<TScenario> And(Expression<Func<TScenario, Task>> andGivenStep, bool includeInputsInStepTitle);
29-
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle);
3015
}
3116
}

TestStack.BDDfy/Scanners/StepScanners/Fluent/IInitialStep.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,13 @@
44

55
namespace TestStack.BDDfy
66
{
7-
public interface IInitialStep<TScenario>
7+
public interface IInitialStep<TScenario> : IWhenSteps<TScenario>
88
{
9-
IGiven<TScenario> Given(Expression<Action<TScenario>> givenStep, bool includeInputsInStepTitle);
10-
IGiven<TScenario> Given(Action givenStep, string title);
11-
IGiven<TScenario> Given(string title);
12-
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle);
13-
IWhen<TScenario> When(Action whenStep, string title);
14-
IWhen<TScenario> When(string title);
15-
169
IGiven<TScenario> Given(Expression<Action<TScenario>> givenStep, string stepTextTemplate = null);
17-
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, string stepTextTemplate = null);
18-
10+
IGiven<TScenario> Given(Expression<Action<TScenario>> givenStep, bool includeInputsInStepTitle);
1911
IGiven<TScenario> Given(Expression<Func<TScenario, Task>> givenStep, string stepTextTemplate = null);
20-
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate = null);
2112
IGiven<TScenario> Given(Expression<Func<TScenario, Task>> givenStep, bool includeInputsInStepTitle);
22-
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle);
13+
IGiven<TScenario> Given(Action givenStep, string title);
14+
IGiven<TScenario> Given(string title);
2315
}
2416
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System;
2+
using System.Linq.Expressions;
3+
4+
namespace TestStack.BDDfy
5+
{
6+
public interface IStepsBase<TScenario> : IHasScanner
7+
{
8+
IStepsBase<TScenario> TearDownWith(Expression<Action<TScenario>> tearDownStep);
9+
IStepsBase<TScenario> TearDownWith(Expression<Func<TScenario, System.Threading.Tasks.Task>> tearDownStep);
10+
}
11+
}

TestStack.BDDfy/Scanners/StepScanners/Fluent/IThen.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44

55
namespace TestStack.BDDfy
66
{
7-
public interface IThen<TScenario> : IFluentScanner<TScenario>
7+
public interface IThen<TScenario> : IStepsBase<TScenario>
88
{
99
IAndThen<TScenario> And(Expression<Action<TScenario>> andThenStep, bool includeInputsInStepTitle);
1010
IAndThen<TScenario> And(Expression<Action<TScenario>> andThenStep, string stepTextTemplate = null);
11-
11+
IAndThen<TScenario> And(Expression<Func<TScenario, Task>> andThenStep, bool includeInputsInStepTitle);
12+
IAndThen<TScenario> And(Expression<Func<TScenario, Task>> andThenStep, string stepTextTemplate = null);
1213
IAndThen<TScenario> And(Action andThenStep, string title);
1314
IAndThen<TScenario> And(string title);
14-
IAndThen<TScenario> And(Expression<Func<TScenario, Task>> andThenStep, string stepTextTemplate = null);
15-
IAndThen<TScenario> And(Expression<Func<TScenario, Task>> andThenStep, bool includeInputsInStepTitle);
1615
}
1716
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System;
2+
using System.Linq.Expressions;
3+
using System.Threading.Tasks;
4+
5+
namespace TestStack.BDDfy
6+
{
7+
public interface IThenSteps<TScenario>
8+
{
9+
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle);
10+
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate = null);
11+
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle);
12+
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate = null);
13+
IThen<TScenario> Then(Action thenStep, string title);
14+
IThen<TScenario> Then(string title);
15+
}
16+
}

TestStack.BDDfy/Scanners/StepScanners/Fluent/IWhen.cs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,13 @@
44

55
namespace TestStack.BDDfy
66
{
7-
public interface IWhen<TScenario> : IFluentScanner<TScenario>
7+
public interface IWhen<TScenario> : IStepsBase<TScenario>, IThenSteps<TScenario>
88
{
99
IAndWhen<TScenario> And(Expression<Action<TScenario>> andWhenStep, bool includeInputsInStepTitle);
10-
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, bool includeInputsInStepTitle);
11-
1210
IAndWhen<TScenario> And(Expression<Action<TScenario>> andWhenStep, string stepTextTemplate = null);
11+
IAndWhen<TScenario> And(Expression<Func<TScenario, Task>> andWhenStep, bool includeInputsInStepTitle);
12+
IAndWhen<TScenario> And(Expression<Func<TScenario, Task>> andWhenStep, string stepTextTemplate = null);
1313
IAndWhen<TScenario> And(Action andWhenStep, string title);
1414
IAndWhen<TScenario> And(string title);
15-
IThen<TScenario> Then(Expression<Action<TScenario>> thenStep, string stepTextTemplate = null);
16-
IThen<TScenario> Then(Action thenStep, string title);
17-
IThen<TScenario> Then(string title);
18-
19-
IAndWhen<TScenario> And(Expression<Func<TScenario, Task>> andWhenStep, string stepTextTemplate = null);
20-
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, string stepTextTemplate = null);
21-
22-
IAndWhen<TScenario> And(Expression<Func<TScenario, Task>> andWhenStep, bool includeInputsInStepTitle);
23-
IThen<TScenario> Then(Expression<Func<TScenario, Task>> thenStep, bool includeInputsInStepTitle);
2415
}
2516
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System;
2+
using System.Linq.Expressions;
3+
using System.Threading.Tasks;
4+
5+
namespace TestStack.BDDfy
6+
{
7+
public interface IWhenSteps<TScenario>
8+
{
9+
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, string stepTextTemplate = null);
10+
IWhen<TScenario> When(Expression<Action<TScenario>> whenStep, bool includeInputsInStepTitle);
11+
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, string stepTextTemplate = null);
12+
IWhen<TScenario> When(Expression<Func<TScenario, Task>> whenStep, bool includeInputsInStepTitle);
13+
IWhen<TScenario> When(Action whenStep, string title);
14+
IWhen<TScenario> When(string title);
15+
}
16+
}

TestStack.BDDfy/TestStack.BDDfy.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@
105105
<Compile Include="Processors\StoryCache.cs" />
106106
<Compile Include="ExecutionOrder.cs" />
107107
<Compile Include="IHasScanner.cs" />
108+
<Compile Include="Scanners\StepScanners\Fluent\IThenSteps.cs" />
109+
<Compile Include="Scanners\StepScanners\Fluent\IWhenSteps.cs" />
108110
<Compile Include="Scenario.cs" />
109111
<Compile Include="Engine.cs" />
110112
<Compile Include="Story.cs" />
@@ -142,7 +144,7 @@
142144
<Compile Include="Scanners\StepScanners\Fluent\IAndGiven.cs" />
143145
<Compile Include="Scanners\StepScanners\Fluent\IAndThen.cs" />
144146
<Compile Include="Scanners\StepScanners\Fluent\IAndWhen.cs" />
145-
<Compile Include="Scanners\StepScanners\Fluent\IFluentScanner.cs" />
147+
<Compile Include="Scanners\StepScanners\Fluent\IStepsBase.cs" />
146148
<Compile Include="Scanners\StepScanners\Fluent\IGiven.cs" />
147149
<Compile Include="Scanners\StepScanners\Fluent\IInitialStep.cs" />
148150
<Compile Include="Scanners\StepScanners\Fluent\IThen.cs" />

0 commit comments

Comments
 (0)