Skip to content

Commit 33631d5

Browse files
committed
✨ Concordion
1 parent a11c641 commit 33631d5

6 files changed

Lines changed: 256 additions & 4 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Concordion.NET
2+
3+
* Dependencies: NUnit
4+
* NuGet: https://www.nuget.org/packages/Concordion.NET/
5+
* Source: https://github.com/concordion/concordion.net
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!DOCTYPE html>
2+
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
3+
<head>
4+
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
5+
</head>
6+
<body>
7+
<h1>Stack</h1>
8+
<pre>
9+
In order to support last-in-first-out (LIFO) operations
10+
As an developer
11+
I want to use a stack
12+
</pre>
13+
14+
<h2>Empty</h2>
15+
<p concordion:execute="GivenAnEmptyStack()">Given an empty stack</p>
16+
<p concordion:assert-true="IsEmpty()">Then it has no elements</p>
17+
<p concordion:assert-true="ShouldThrowWhenPop()">And it throws an exception when calling pop</p>
18+
<p concordion:assert-true="ShouldThrowWhenPeek()">And it throws an exception when calling peek</p>
19+
20+
<h2>Not empty</h2>
21+
<p concordion:execute="GivenANonEmptyStack()">Given a non empty stack</p>
22+
<p concordion:execute="#result = Peek()">When calling peek</p>
23+
<p concordion:assert-true="#result == TopElement">Then it returns the top element</p>
24+
<p concordion:assert-true="Contains(#result)">But it does not remove the top element</p>
25+
<p concordion:execute="#result = Pop()">When calling pop</p>
26+
<p concordion:assert-true="#result == TopElement">Then it returns the top element</p>
27+
<p concordion:assert-true="DoesNotContain(#result)">And it removes the top element</p>
28+
</body>
29+
</html>
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using Concordion.NET.Integration;
4+
using Concordion.Runners.NUnit;
5+
using NUnit.Framework;
6+
7+
namespace ConductOfCode.Concordion
8+
{
9+
[TestFixture]
10+
[ConcordionTest]
11+
public class StackTest : ExecutableSpecification
12+
{
13+
private Stack<int> stack;
14+
15+
public int TopElement => 3;
16+
17+
// Empty
18+
19+
public void GivenAnEmptyStack()
20+
{
21+
stack = new Stack<int>();
22+
}
23+
24+
public bool IsEmpty()
25+
{
26+
return stack.Count == 0;
27+
}
28+
29+
public bool ShouldThrowWhenPop()
30+
{
31+
return ShouldThrowWhen(() => stack.Pop());
32+
}
33+
34+
public bool ShouldThrowWhenPeek()
35+
{
36+
return ShouldThrowWhen(() => stack.Peek());
37+
}
38+
39+
private bool ShouldThrowWhen(Action action)
40+
{
41+
try
42+
{
43+
action();
44+
}
45+
catch
46+
{
47+
return true;
48+
}
49+
50+
return false;
51+
}
52+
53+
// Not empty
54+
55+
public void GivenANonEmptyStack()
56+
{
57+
stack = new Stack<int>(new[] { 1, 2, TopElement });
58+
}
59+
60+
public int Pop()
61+
{
62+
return stack.Pop();
63+
}
64+
65+
public int Peek()
66+
{
67+
return stack.Peek();
68+
}
69+
70+
public bool Contains(int value)
71+
{
72+
return stack.Contains(value);
73+
}
74+
75+
public bool DoesNotContain(int value)
76+
{
77+
return !stack.Contains(value);
78+
}
79+
}
80+
}

BDD/ConductOfCode/ConductOfCode/ConductOfCode.csproj

Lines changed: 138 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,134 @@
3030
<WarningLevel>4</WarningLevel>
3131
</PropertyGroup>
3232
<ItemGroup>
33+
<Reference Include="Concordion, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
34+
<HintPath>..\packages\Concordion.NET.1.5.0\lib\Concordion.dll</HintPath>
35+
<Private>True</Private>
36+
</Reference>
37+
<Reference Include="Concordion.NET, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
38+
<HintPath>..\packages\Concordion.NET.1.5.0\lib\Concordion.NET.dll</HintPath>
39+
<Private>True</Private>
40+
</Reference>
41+
<Reference Include="Concordion.Runners, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
42+
<HintPath>..\packages\Concordion.NET.1.5.0\lib\Concordion.Runners.dll</HintPath>
43+
<Private>True</Private>
44+
</Reference>
3345
<Reference Include="ExpectedObjects, Version=1.2.3.0, Culture=neutral, processorArchitecture=MSIL">
3446
<HintPath>..\packages\ExpectedObjects.1.2.3\lib\net40\ExpectedObjects.dll</HintPath>
3547
<Private>True</Private>
3648
</Reference>
49+
<Reference Include="IKVM.AWT.WinForms, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
50+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.AWT.WinForms.dll</HintPath>
51+
<Private>True</Private>
52+
</Reference>
53+
<Reference Include="IKVM.OpenJDK.Beans, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
54+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Beans.dll</HintPath>
55+
<Private>True</Private>
56+
</Reference>
57+
<Reference Include="IKVM.OpenJDK.Charsets, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
58+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Charsets.dll</HintPath>
59+
<Private>True</Private>
60+
</Reference>
61+
<Reference Include="IKVM.OpenJDK.Cldrdata, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
62+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Cldrdata.dll</HintPath>
63+
<Private>True</Private>
64+
</Reference>
65+
<Reference Include="IKVM.OpenJDK.Corba, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
66+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Corba.dll</HintPath>
67+
<Private>True</Private>
68+
</Reference>
69+
<Reference Include="IKVM.OpenJDK.Core, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
70+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Core.dll</HintPath>
71+
<Private>True</Private>
72+
</Reference>
73+
<Reference Include="IKVM.OpenJDK.Jdbc, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
74+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Jdbc.dll</HintPath>
75+
<Private>True</Private>
76+
</Reference>
77+
<Reference Include="IKVM.OpenJDK.Localedata, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
78+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Localedata.dll</HintPath>
79+
<Private>True</Private>
80+
</Reference>
81+
<Reference Include="IKVM.OpenJDK.Management, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
82+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Management.dll</HintPath>
83+
<Private>True</Private>
84+
</Reference>
85+
<Reference Include="IKVM.OpenJDK.Media, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
86+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Media.dll</HintPath>
87+
<Private>True</Private>
88+
</Reference>
89+
<Reference Include="IKVM.OpenJDK.Misc, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
90+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Misc.dll</HintPath>
91+
<Private>True</Private>
92+
</Reference>
93+
<Reference Include="IKVM.OpenJDK.Naming, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
94+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Naming.dll</HintPath>
95+
<Private>True</Private>
96+
</Reference>
97+
<Reference Include="IKVM.OpenJDK.Nashorn, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
98+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Nashorn.dll</HintPath>
99+
<Private>True</Private>
100+
</Reference>
101+
<Reference Include="IKVM.OpenJDK.Remoting, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
102+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Remoting.dll</HintPath>
103+
<Private>True</Private>
104+
</Reference>
105+
<Reference Include="IKVM.OpenJDK.Security, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
106+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Security.dll</HintPath>
107+
<Private>True</Private>
108+
</Reference>
109+
<Reference Include="IKVM.OpenJDK.SwingAWT, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
110+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.SwingAWT.dll</HintPath>
111+
<Private>True</Private>
112+
</Reference>
113+
<Reference Include="IKVM.OpenJDK.Text, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
114+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Text.dll</HintPath>
115+
<Private>True</Private>
116+
</Reference>
117+
<Reference Include="IKVM.OpenJDK.Tools, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
118+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Tools.dll</HintPath>
119+
<Private>True</Private>
120+
</Reference>
121+
<Reference Include="IKVM.OpenJDK.Util, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
122+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.Util.dll</HintPath>
123+
<Private>True</Private>
124+
</Reference>
125+
<Reference Include="IKVM.OpenJDK.XML.API, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
126+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.API.dll</HintPath>
127+
<Private>True</Private>
128+
</Reference>
129+
<Reference Include="IKVM.OpenJDK.XML.Bind, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
130+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.Bind.dll</HintPath>
131+
<Private>True</Private>
132+
</Reference>
133+
<Reference Include="IKVM.OpenJDK.XML.Crypto, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
134+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.Crypto.dll</HintPath>
135+
<Private>True</Private>
136+
</Reference>
137+
<Reference Include="IKVM.OpenJDK.XML.Parse, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
138+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.Parse.dll</HintPath>
139+
<Private>True</Private>
140+
</Reference>
141+
<Reference Include="IKVM.OpenJDK.XML.Transform, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
142+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.Transform.dll</HintPath>
143+
<Private>True</Private>
144+
</Reference>
145+
<Reference Include="IKVM.OpenJDK.XML.WebServices, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
146+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.WebServices.dll</HintPath>
147+
<Private>True</Private>
148+
</Reference>
149+
<Reference Include="IKVM.OpenJDK.XML.XPath, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
150+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.OpenJDK.XML.XPath.dll</HintPath>
151+
<Private>True</Private>
152+
</Reference>
153+
<Reference Include="IKVM.Runtime, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
154+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.Runtime.dll</HintPath>
155+
<Private>True</Private>
156+
</Reference>
157+
<Reference Include="IKVM.Runtime.JNI, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
158+
<HintPath>..\packages\IKVM.8.1.5717.0\lib\IKVM.Runtime.JNI.dll</HintPath>
159+
<Private>True</Private>
160+
</Reference>
37161
<Reference Include="LightBDD, Version=1.7.1.0, Culture=neutral, processorArchitecture=MSIL">
38162
<HintPath>..\packages\LightBDD.Core.1.7.1.0\lib\net40\LightBDD.dll</HintPath>
39163
<Private>True</Private>
@@ -62,8 +186,12 @@
62186
<HintPath>..\packages\nspec.1.0.7\lib\NSpec.dll</HintPath>
63187
<Private>True</Private>
64188
</Reference>
65-
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
66-
<HintPath>..\packages\NUnit.2.6.3\lib\nunit.framework.dll</HintPath>
189+
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
190+
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
191+
<Private>True</Private>
192+
</Reference>
193+
<Reference Include="OGNL, Version=1.0.3982.16799, Culture=neutral, processorArchitecture=MSIL">
194+
<HintPath>..\packages\Concordion.NET.1.5.0\lib\OGNL.dll</HintPath>
67195
<Private>True</Private>
68196
</Reference>
69197
<Reference Include="Should, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
@@ -98,6 +226,10 @@
98226
<HintPath>..\packages\Xbehave.Core.2.1.0\lib\portable-net45\Xbehave.Execution.desktop.dll</HintPath>
99227
<Private>True</Private>
100228
</Reference>
229+
<Reference Include="xom, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
230+
<HintPath>..\packages\Concordion.NET.1.5.0\lib\xom.dll</HintPath>
231+
<Private>True</Private>
232+
</Reference>
101233
<Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
102234
<HintPath>..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
103235
<Private>True</Private>
@@ -116,6 +248,7 @@
116248
</Reference>
117249
</ItemGroup>
118250
<ItemGroup>
251+
<Compile Include="Concordion\StackTest.cs" />
119252
<Compile Include="DebuggerShim.cs" />
120253
<Compile Include="LightBDD\Stack_feature.cs" />
121254
<Compile Include="LightBDD\Stack_feature.Steps.cs">
@@ -131,6 +264,9 @@
131264
<None Include="app.config" />
132265
<None Include="packages.config" />
133266
</ItemGroup>
267+
<ItemGroup>
268+
<EmbeddedResource Include="Concordion\Stack.html" />
269+
</ItemGroup>
134270
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
135271
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
136272
Other similar extension points exist, see Microsoft.Common.targets.

BDD/ConductOfCode/ConductOfCode/app.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
55
<dependentAssembly>
66
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="neutral" />
7-
<bindingRedirect oldVersion="0.0.0.0-2.6.3.13283" newVersion="2.6.3.13283" />
7+
<bindingRedirect oldVersion="0.0.0.0-2.6.4.14350" newVersion="2.6.4.14350" />
88
</dependentAssembly>
99
</assemblyBinding>
1010
</runtime>

BDD/ConductOfCode/ConductOfCode/packages.config

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="Concordion.NET" version="1.5.0" targetFramework="net46" />
34
<package id="ExpectedObjects" version="1.2.3" targetFramework="net46" />
5+
<package id="IKVM" version="8.1.5717.0" targetFramework="net46" />
46
<package id="LightBDD" version="1.7.1.0" targetFramework="net46" />
57
<package id="LightBDD.Core" version="1.7.1.0" targetFramework="net46" />
68
<package id="LightBDD.NUnit" version="1.7.1.0" targetFramework="net46" />
79
<package id="Machine.Specifications" version="0.9.3" targetFramework="net46" />
810
<package id="Machine.Specifications.Should" version="0.9.0" targetFramework="net46" />
911
<package id="Moq" version="4.2.1510.2205" targetFramework="net46" />
1012
<package id="nspec" version="1.0.7" targetFramework="net46" />
11-
<package id="NUnit" version="2.6.3" targetFramework="net46" />
13+
<package id="NUnit" version="2.6.4" targetFramework="net46" />
1214
<package id="Should" version="1.1.20" targetFramework="net46" />
1315
<package id="SpecsFor" version="5.0.0" targetFramework="net46" />
1416
<package id="structuremap" version="4.1.3.394" targetFramework="net46" />

0 commit comments

Comments
 (0)