Skip to content

Commit 7185616

Browse files
committed
Merge branch 'release/1.0.2' into production
2 parents 28dff7f + 7d31b4d commit 7185616

4 files changed

Lines changed: 76 additions & 3 deletions

File tree

CSF.Zpt/Rendering/RenderingContext.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ public virtual void CopyTo(IModelValueContainer container)
195195

196196
foreach(var key in metalDefinitions.Keys)
197197
{
198-
container.MetalModel.AddLocal(key, talDefinitions[key]);
198+
container.MetalModel.AddLocal(key, metalDefinitions[key]);
199199
}
200200
}
201201

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using CSF.Zpt.Rendering;
4+
using Moq;
5+
using NUnit.Framework;
6+
7+
namespace Test.CSF.Zpt.Rendering
8+
{
9+
[TestFixture]
10+
public class RenderingContextTests
11+
{
12+
[Test]
13+
public void CopyTo_copies_both_TAL_and_METAL_contexts()
14+
{
15+
// Arrange
16+
var talDefinitions = new Dictionary<string,object> {
17+
{ "one", 1 },
18+
{ "two", 2 },
19+
{ "three", 3 },
20+
};
21+
var metalDefinitions = new Dictionary<string,object> {
22+
{ "metal-one", 1 },
23+
{ "metal-two", 2 },
24+
{ "metal-three", 3 },
25+
};
26+
var sut = GetSut(metalDefinitions, talDefinitions);
27+
var container = GetContainer();
28+
29+
// Act
30+
sut.CopyTo(container);
31+
32+
// Assert
33+
foreach(var def in talDefinitions)
34+
{
35+
Mock.Get(container.TalModel).Verify(x => x.AddLocal(def.Key, def.Value),
36+
Times.Once(),
37+
$"Definition {def.Key} has been added to the receiving TAL model");
38+
}
39+
40+
foreach(var def in metalDefinitions)
41+
{
42+
Mock.Get(container.MetalModel).Verify(x => x.AddLocal(def.Key, def.Value),
43+
Times.Once(),
44+
$"Definition {def.Key} has been added to the receiving METAL model");
45+
}
46+
}
47+
48+
IModel GetModel(IDictionary<string,object> defs)
49+
{
50+
var model = new Mock<IModel>();
51+
model
52+
.Setup(x => x.GetAllDefinitions())
53+
.Returns(defs);
54+
return model.Object;
55+
}
56+
57+
IRenderingContext GetSut(IDictionary<string,object> metalDefs,
58+
IDictionary<string,object> talDefs)
59+
{
60+
var talModel = GetModel(talDefs);
61+
var metalModel = GetModel(metalDefs);
62+
return new RenderingContext(metalModel, talModel, Mock.Of<IZptElement>(), Mock.Of<IRenderingSettings>());
63+
}
64+
65+
IModelValueContainer GetContainer()
66+
{
67+
var talReceiver = Mock.Of<IModelValueStore>();
68+
var metalReceiver = Mock.Of<IModelValueStore>();
69+
return Mock.Of<IModelValueContainer>(x => x.TalModel == talReceiver && x.MetalModel == metalReceiver);
70+
}
71+
}
72+
}

Tests/Test.CSF.Zpt/Test.CSF.Zpt.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
<Compile Include="Metal\TestMacroExtensionSubstitutor.cs" />
107107
<Compile Include="SourceAnnotation\TestSourceAnnotator.cs" />
108108
<Compile Include="Metal\MetalMacroContainerTests.cs" />
109+
<Compile Include="Rendering\RenderingContextTests.cs" />
109110
</ItemGroup>
110111
<ItemGroup>
111112
<ProjectReference Include="..\..\CSF.Zpt\CSF.Zpt.csproj">

version.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
semantic_version = 1.0.1
2-
build_number = 4
1+
semantic_version = 1.0.2
2+
build_number = 1

0 commit comments

Comments
 (0)