Skip to content

Commit 26eb403

Browse files
author
Jake Ginnivan
committed
Added this.When support back
1 parent ba9903a commit 26eb403

3 files changed

Lines changed: 108 additions & 1 deletion

File tree

TestStack.BDDfy.Tests/Stories/StoryCanBeSpecifiedInFluentMode.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public class StoryCanBeSpecifiedInFluentMode
99
public void Verify()
1010
{
1111
var story = this
12-
.Given("Given step must be first")
1312
.When(_ => WhenStoryIsSpecifiedInFluentMode())
1413
.Then(_ => ThenTheSpecifiedStoryShouldBeUsed())
1514
.BDDfy<SharedStoryNotion>();

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,60 @@ public static IFluentTestBuilder<TScenario> Given<TScenario>(this TScenario test
6262
{
6363
return new FluentTestBuilder<TScenario>(testObject).Given(title);
6464
}
65+
66+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step, string stepTextTemplate)
67+
where TScenario: class
68+
{
69+
return new FluentTestBuilder<TScenario>(testObject).When(step, stepTextTemplate);
70+
}
71+
72+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step, bool includeInputsInStepTitle)
73+
where TScenario: class
74+
{
75+
return new FluentTestBuilder<TScenario>(testObject).When(step, includeInputsInStepTitle);
76+
}
77+
78+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step)
79+
where TScenario: class
80+
{
81+
return new FluentTestBuilder<TScenario>(testObject).When(step);
82+
}
83+
84+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step, string stepTextTemplate)
85+
where TScenario: class
86+
{
87+
return new FluentTestBuilder<TScenario>(testObject).When(step, stepTextTemplate);
88+
}
89+
90+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step, bool includeInputsInStepTitle)
91+
where TScenario: class
92+
{
93+
return new FluentTestBuilder<TScenario>(testObject).When(step, includeInputsInStepTitle);
94+
}
95+
96+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step)
97+
where TScenario: class
98+
{
99+
return new FluentTestBuilder<TScenario>(testObject).When(step);
100+
}
101+
102+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Action step, string title)
103+
where TScenario : class
104+
{
105+
return new FluentTestBuilder<TScenario>(testObject).When(step, title);
106+
}
107+
108+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Func<Task> step, string title)
109+
where TScenario : class
110+
{
111+
return new FluentTestBuilder<TScenario>(testObject).When(step, title);
112+
}
113+
114+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, string title)
115+
where TScenario : class
116+
{
117+
return new FluentTestBuilder<TScenario>(testObject).When(title);
118+
}
65119
}
66120

67121
public interface IFluentTestBuilder<TScenario> where TScenario: class

TestStack.BDDfy/Scanners/StepScanners/Fluent/FluentApi.tt

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,60 @@ namespace TestStack.BDDfy
8080
{
8181
return new FluentTestBuilder<TScenario>(testObject).Given(title);
8282
}
83+
84+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step, string stepTextTemplate)
85+
where TScenario: class
86+
{
87+
return new FluentTestBuilder<TScenario>(testObject).When(step, stepTextTemplate);
88+
}
89+
90+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step, bool includeInputsInStepTitle)
91+
where TScenario: class
92+
{
93+
return new FluentTestBuilder<TScenario>(testObject).When(step, includeInputsInStepTitle);
94+
}
95+
96+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Action<TScenario>> step)
97+
where TScenario: class
98+
{
99+
return new FluentTestBuilder<TScenario>(testObject).When(step);
100+
}
101+
102+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step, string stepTextTemplate)
103+
where TScenario: class
104+
{
105+
return new FluentTestBuilder<TScenario>(testObject).When(step, stepTextTemplate);
106+
}
107+
108+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step, bool includeInputsInStepTitle)
109+
where TScenario: class
110+
{
111+
return new FluentTestBuilder<TScenario>(testObject).When(step, includeInputsInStepTitle);
112+
}
113+
114+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Expression<Func<TScenario, Task>> step)
115+
where TScenario: class
116+
{
117+
return new FluentTestBuilder<TScenario>(testObject).When(step);
118+
}
119+
120+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Action step, string title)
121+
where TScenario : class
122+
{
123+
return new FluentTestBuilder<TScenario>(testObject).When(step, title);
124+
}
125+
126+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, Func<Task> step, string title)
127+
where TScenario : class
128+
{
129+
return new FluentTestBuilder<TScenario>(testObject).When(step, title);
130+
}
131+
132+
public static IFluentTestBuilder<TScenario> When<TScenario>(this TScenario testObject, string title)
133+
where TScenario : class
134+
{
135+
return new FluentTestBuilder<TScenario>(testObject).When(title);
136+
}
83137
}
84138

85139
public interface IFluentTestBuilder<TScenario> where TScenario: class

0 commit comments

Comments
 (0)