diff --git a/src/15below.Deployment.ReportingServices/Properties/AssemblyInfo.cs b/src/15below.Deployment.ReportingServices/Properties/AssemblyInfo.cs
index 7b6b7c74..97bfd492 100644
--- a/src/15below.Deployment.ReportingServices/Properties/AssemblyInfo.cs
+++ b/src/15below.Deployment.ReportingServices/Properties/AssemblyInfo.cs
@@ -30,7 +30,7 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyFileVersion("1.0.2.0")]
+// [assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyFileVersion("1.0.3.0")]
[assembly: AssemblyInformationalVersion("1.0.0-feature-Ma-local")]
diff --git a/src/15below.Deployment.Update.Tests/Properties/AssemblyInfo.cs b/src/15below.Deployment.Update.Tests/Properties/AssemblyInfo.cs
index 9cd96295..69ed2d63 100644
--- a/src/15below.Deployment.Update.Tests/Properties/AssemblyInfo.cs
+++ b/src/15below.Deployment.Update.Tests/Properties/AssemblyInfo.cs
@@ -30,7 +30,7 @@
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyFileVersion("1.0.2.0")]
+// [assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyVersion("1.0.3.0")]
+[assembly: AssemblyFileVersion("1.0.3.0")]
[assembly: AssemblyInformationalVersion("1.0.0-feature-Ma-local")]
diff --git a/src/15below.Deployment.Update.Tests/TagDictionaryTestFiles/webservice-structure.xml b/src/15below.Deployment.Update.Tests/TagDictionaryTestFiles/webservice-structure.xml
index 2d9ab6c3..f6045a80 100644
--- a/src/15below.Deployment.Update.Tests/TagDictionaryTestFiles/webservice-structure.xml
+++ b/src/15below.Deployment.Update.Tests/TagDictionaryTestFiles/webservice-structure.xml
@@ -34,6 +34,38 @@
idvalue
+
+
+
+
+ ABC123
+
+
+
+
+
+ 321CBA
+
+
+
+
+ 999
+
+
+
+
+
+
+
+ 888
+
+
+
+ FlatGroup-0
+
+
+ FlatGroup-1
+
diff --git a/src/15below.Deployment.Update.Tests/TagDictionaryTests.cs b/src/15below.Deployment.Update.Tests/TagDictionaryTests.cs
index c9f9b265..c7c3bb52 100644
--- a/src/15below.Deployment.Update.Tests/TagDictionaryTests.cs
+++ b/src/15below.Deployment.Update.Tests/TagDictionaryTests.cs
@@ -1,9 +1,9 @@
-using System;
+using NUnit.Framework;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
-using NUnit.Framework;
namespace FifteenBelow.Deployment.Update.Tests
{
@@ -232,6 +232,13 @@ public void LoadLabelledGroups()
Assert.IsTrue(sut.ContainsKey("GDS"));
}
+ [Test]
+ public void LoadFlatLabelledGroups()
+ {
+ var sut = new TagDictionary("ident", XmlData);
+ Assert.IsTrue(sut.ContainsKey("FlatGroup"));
+ }
+
[Test]
public void LoadLabelledGroupsValuesAndNormalIdentityValuesAvailable()
{
@@ -275,7 +282,7 @@ public void OctopusVariablesConvertedToFriendlyTagNames(string key, string value
var sut = new TagDictionary("ident", new Dictionary { { TagSource.Environment, "" }, { TagSource.XmlData, XmlData } });
Assert.AreEqual(value, sut[friendlyKey]);
}
-
+
[Test]
public void UseAnInvalidProperty_Throws()
{
@@ -433,5 +440,38 @@ public void EnsureThatXmlIncludesWork_AndArriveRenderered()
var sut = new TagDictionary("ident", new Dictionary { { TagSource.XmlData, XmlData } });
Assert.AreEqual(xml.Value.RenderTemplate(sut), "{% include \"webservice-structure.xml\" %}".RenderTemplate(sut));
}
+
+ [Test]
+ public void DualLabeledGroupWorks()
+ {
+ var sut = new TagDictionary("ident", new Dictionary { { TagSource.XmlData, XmlData } });
+ Assert.AreEqual("ABC123", "{{ Label1.0.Value }}".RenderTemplate(sut));
+ Assert.AreEqual("ABC123", "{{ Label2.0.Value }}".RenderTemplate(sut));
+ Assert.AreEqual("321CBA", "{{ Label1.1.Value }}".RenderTemplate(sut));
+ Assert.Throws(() => "{{ Label2.1.Value }}".RenderTemplate(sut));
+ }
+
+ [Test]
+ public void FlatLabelGroupsHaveValues()
+ {
+ var sut = new TagDictionary("ident", new Dictionary { { TagSource.XmlData, XmlData } });
+ Assert.AreEqual("FlatGroup-0", "{{ FlatGroup.0.Value }}".RenderTemplate(sut));
+ Assert.AreEqual("FlatGroup-1", "{{ FlatGroup.1.Value }}".RenderTemplate(sut));
+ }
+
+ [Test]
+ public void LabelNodeWithoutProperties()
+ {
+ var sut = new TagDictionary("ident", new Dictionary { { TagSource.XmlData, XmlData } });
+ Assert.AreEqual("999", "{{ Label3.0.Value }}".RenderTemplate(sut));
+ }
+
+ [Test]
+ public void DualLabeledGroupWithContainerNodeWorks()
+ {
+ var sut = new TagDictionary("ident", new Dictionary { { TagSource.XmlData, XmlData } });
+ Assert.AreEqual("888", "{{ LabelGrouped1.0.Value }}".RenderTemplate(sut));
+ Assert.AreEqual("888", "{{ LabelGrouped2.0.Value }}".RenderTemplate(sut));
+ }
}
}
\ No newline at end of file
diff --git a/src/15below.Deployment.Update/15below.Deployment.Update.csproj b/src/15below.Deployment.Update/15below.Deployment.Update.csproj
index 35559921..1f6eec67 100644
--- a/src/15below.Deployment.Update/15below.Deployment.Update.csproj
+++ b/src/15below.Deployment.Update/15below.Deployment.Update.csproj
@@ -74,6 +74,11 @@
Designer
+
+
+ Designer
+
+