Skip to content

Commit d7b703e

Browse files
Merge pull request #81 from SparkViewEngine/new-build
New build
2 parents 526a6ca + 4c4ac54 commit d7b703e

File tree

117 files changed

+2707
-1957
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+2707
-1957
lines changed

.github/workflows/ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ jobs:
1515
runs-on: windows-2019
1616

1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
- name: Setup .NET
20-
uses: actions/setup-dotnet@v3
20+
uses: actions/setup-dotnet@v4
2121
with:
2222
dotnet-version: 8.0.x
2323
- name: Restore dependencies

src/Castle.MonoRail.Views.Spark.Tests/Caching/HybridCacheServiceProviderTests.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void Init()
3636
.Stub(x => x.UnderlyingContext)
3737
.Return(httpContext);
3838

39-
foreach (var key in HttpRuntime.Cache.OfType<DictionaryEntry>().Select(x=>x.Key))
39+
foreach (var key in HttpRuntime.Cache.OfType<DictionaryEntry>().Select(x => x.Key))
4040
HttpRuntime.Cache.Remove(Convert.ToString(key));
4141
}
4242

@@ -115,9 +115,12 @@ public void StoreAndGetToBothMonorailAndHttpCacheWorkSideBySide()
115115
cacheService.Store("xfoo1", null, null, "bar1");
116116
cacheService.Store("xfoo2", null, signal, "bar2");
117117

118-
Assert.That(cacheService.Get("xfoo1"), Is.EqualTo("bar1"));
119-
Assert.That(cacheService.Get("xfoo2"), Is.EqualTo("bar2"));
120-
Assert.That(cacheService.Get("xfoo3"), Is.Null);
118+
Assert.Multiple(() =>
119+
{
120+
Assert.That(cacheService.Get("xfoo1"), Is.EqualTo("bar1"));
121+
Assert.That(cacheService.Get("xfoo2"), Is.EqualTo("bar2"));
122+
Assert.That(cacheService.Get("xfoo3"), Is.Null);
123+
});
121124

122125
_context.Services.CacheProvider.VerifyAllExpectations();
123126

src/Castle.MonoRail.Views.Spark.Tests/Castle.MonoRail.Views.Spark.Tests.csproj

+8-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,14 @@
2828
<Reference Include="System.Web" />
2929
</ItemGroup>
3030
<ItemGroup>
31-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
32-
<PackageReference Include="NUnit" Version="3.14.0" />
33-
<PackageReference Include="NUnit.Console" Version="3.16.3" />
34-
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
31+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
32+
<PackageReference Include="NUnit" Version="4.2.2" />
33+
<PackageReference Include="NUnit.Analyzers" Version="4.4.0">
34+
<PrivateAssets>all</PrivateAssets>
35+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
36+
</PackageReference>
37+
<PackageReference Include="NUnit.Console" Version="3.18.3" />
38+
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0" />
3539
<PackageReference Include="RhinoMocks" Version="3.6.1" />
3640
</ItemGroup>
3741
<ItemGroup>

src/Castle.MonoRail.Views.Spark.Tests/Constraints.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public override ConstraintResult ApplyTo<TActual>(TActual actual)
8585

8686
index = nextIndex + value.Length;
8787
}
88-
88+
8989
return new ConstraintResult(this, index, true);
9090
}
9191

src/Castle.MonoRail.Views.Spark.Tests/HelperExtensionMethodsTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public void VerifyAppropriateMethodsPresent()
7272
missingMethods.Add(neededMethod);
7373
}
7474

75-
Assert.IsEmpty(string.Concat<MethodDescriptor>(missingMethods.ToArray()), "{0} methods not represented", missingMethods.Count);
75+
Assert.That(string.Concat<MethodDescriptor>(missingMethods.ToArray()), Is.Empty, $"{missingMethods.Count} methods not represented");
7676
}
7777

7878
class HelperDescriptor

src/Castle.MonoRail.Views.Spark.Tests/ModelDictionaryTests.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,13 @@ public class ModelDictionaryTests
2323
[Test]
2424
public void AnonymousObjectPropertiesInDictionary()
2525
{
26-
IDictionary<string, object> args = new ModelDictionary(new {name = "foo", bar = "quux"});
27-
Assert.AreEqual(2, args.Count);
28-
Assert.AreEqual("foo", args["name"]);
29-
Assert.AreEqual("quux", args["bar"]);
26+
IDictionary<string, object> args = new ModelDictionary(new { name = "foo", bar = "quux" });
27+
Assert.That(args.Count, Is.EqualTo(2));
28+
Assert.Multiple(() =>
29+
{
30+
Assert.That(args["name"], Is.EqualTo("foo"));
31+
Assert.That(args["bar"], Is.EqualTo("quux"));
32+
});
3033
}
3134
}
3235
}

src/Castle.MonoRail.Views.Spark.Tests/Models/UserInfo.cs

+11-11
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020

2121
namespace Castle.MonoRail.Views.Spark.Tests.Models
2222
{
23-
public class UserInfo
24-
{
25-
public string Name { get; set; }
26-
public UserType UserType { get; set; }
27-
}
23+
public class UserInfo
24+
{
25+
public string Name { get; set; }
26+
public UserType UserType { get; set; }
27+
}
2828

2929

30-
public enum UserType
31-
{
32-
Anonymous,
33-
Registered,
34-
Administrator,
35-
}
30+
public enum UserType
31+
{
32+
Anonymous,
33+
Registered,
34+
Administrator,
35+
}
3636
}

src/Castle.MonoRail.Views.Spark.Tests/PrecompileInstallerTests.cs

+6-5
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ public void RunPrecompiler()
3535
File.Delete(targetFile);
3636

3737
var parent = new ParentInstaller();
38-
var precompile = new PrecompileInstaller();
39-
40-
precompile.TargetAssemblyFile = targetFile;
41-
precompile.ViewPath = "MonoRail.Tests.Views";
38+
var precompile = new PrecompileInstaller
39+
{
40+
TargetAssemblyFile = targetFile,
41+
ViewPath = "MonoRail.Tests.Views"
42+
};
4243
precompile.DescribeBatch += ((sender, e) => e.Batch.For<StubController>().Include("*").Include("_*"));
4344

4445
var state = new Hashtable();
@@ -54,7 +55,7 @@ public void RunPrecompiler()
5455
var views = result.GetTypes().Where(x => x.BaseType == typeof(SparkView))
5556
.ToArray();
5657

57-
Assert.AreEqual(3, views.Length);
58+
Assert.That(views.Length, Is.EqualTo(3));
5859
}
5960

6061
public class ParentInstaller : Installer

src/Castle.MonoRail.Views.Spark.Tests/SparkBatchCompilerTester.cs

+64-55
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public void CompileBatchDescriptor()
5959

6060
var assembly = _factory.Precompile(batch);
6161

62-
Assert.IsNotNull(assembly);
63-
Assert.AreEqual(3, assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)));
62+
Assert.That(assembly, Is.Not.Null);
63+
Assert.That(assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)), Is.EqualTo(3));
6464
}
6565

6666
[Test]
@@ -72,20 +72,23 @@ public void DefaultEntryBehavior()
7272

7373
var descriptors = _factory.CreateDescriptors(batch);
7474

75-
Assert.AreEqual(2, descriptors.Count);
76-
Assert.AreEqual(2, descriptors[0].Templates.Count);
77-
Assert.AreEqual(2, descriptors[1].Templates.Count);
78-
79-
Assert.That(
80-
descriptors.Any(
81-
d =>
82-
d.Templates.Contains(string.Format("Stub{0}Index.spark", Path.DirectorySeparatorChar)) &&
83-
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
84-
Assert.That(
85-
descriptors.Any(
86-
d =>
87-
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
88-
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
75+
Assert.That(descriptors.Count, Is.EqualTo(2));
76+
Assert.Multiple(() =>
77+
{
78+
Assert.That(descriptors[0].Templates.Count, Is.EqualTo(2));
79+
Assert.That(descriptors[1].Templates.Count, Is.EqualTo(2));
80+
81+
Assert.That(
82+
descriptors.Any(
83+
d =>
84+
d.Templates.Contains(string.Format("Stub{0}Index.spark", Path.DirectorySeparatorChar)) &&
85+
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
86+
Assert.That(
87+
descriptors.Any(
88+
d =>
89+
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
90+
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
91+
});
8992
}
9093

9194
[Test]
@@ -98,8 +101,8 @@ public void MultipleLayoutFiles()
98101

99102
var assembly = _factory.Precompile(batch);
100103

101-
Assert.IsNotNull(assembly);
102-
Assert.AreEqual(4, assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)));
104+
Assert.That(assembly, Is.Not.Null);
105+
Assert.That(assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)), Is.EqualTo(4));
103106
}
104107

105108
[Test]
@@ -112,27 +115,30 @@ public void WildcardIncludeRules()
112115
.For<StubController>().Layout("ajax").Include("_*");
113116

114117
var descriptors = _factory.CreateDescriptors(batch);
115-
Assert.AreEqual(3, descriptors.Count);
116-
Assert.That(
117-
descriptors.Any(
118-
d =>
119-
d.Templates.Contains(string.Format("Stub{0}Index.spark", Path.DirectorySeparatorChar)) &&
120-
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
121-
Assert.That(
122-
descriptors.Any(
123-
d =>
124-
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
125-
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
126-
Assert.That(
127-
descriptors.Any(
128-
d =>
129-
d.Templates.Contains(string.Format("Stub{0}_Widget.spark", Path.DirectorySeparatorChar)) &&
130-
d.Templates.Contains(string.Format("Shared{0}ajax.spark", Path.DirectorySeparatorChar))));
118+
Assert.That(descriptors.Count, Is.EqualTo(3));
119+
Assert.Multiple(() =>
120+
{
121+
Assert.That(
122+
descriptors.Any(
123+
d =>
124+
d.Templates.Contains(string.Format("Stub{0}Index.spark", Path.DirectorySeparatorChar)) &&
125+
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
126+
Assert.That(
127+
descriptors.Any(
128+
d =>
129+
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
130+
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
131+
Assert.That(
132+
descriptors.Any(
133+
d =>
134+
d.Templates.Contains(string.Format("Stub{0}_Widget.spark", Path.DirectorySeparatorChar)) &&
135+
d.Templates.Contains(string.Format("Shared{0}ajax.spark", Path.DirectorySeparatorChar))));
136+
});
131137

132138
var assembly = _factory.Precompile(batch);
133139

134-
Assert.IsNotNull(assembly);
135-
Assert.AreEqual(3, assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)));
140+
Assert.That(assembly, Is.Not.Null);
141+
Assert.That(assembly.GetTypes().Count(x => x.BaseType == typeof(SparkView)), Is.EqualTo(3));
136142
}
137143

138144
[Test]
@@ -144,19 +150,22 @@ public void ExcludeRules()
144150

145151
var descriptors = _factory.CreateDescriptors(batch);
146152

147-
Assert.AreEqual(2, descriptors.Count);
148-
Assert.AreEqual(2, descriptors[0].Templates.Count);
149-
Assert.AreEqual(2, descriptors[1].Templates.Count);
150-
Assert.That(
151-
descriptors.Any(
152-
d =>
153-
d.Templates.Contains(string.Format("Stub{0}_Widget.spark", Path.DirectorySeparatorChar)) &&
154-
d.Templates.Contains(string.Format("Shared{0}ajax.spark", Path.DirectorySeparatorChar))));
155-
Assert.That(
156-
descriptors.Any(
157-
d =>
158-
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
159-
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
153+
Assert.That(descriptors.Count, Is.EqualTo(2));
154+
Assert.Multiple(() =>
155+
{
156+
Assert.That(descriptors[0].Templates.Count, Is.EqualTo(2));
157+
Assert.That(descriptors[1].Templates.Count, Is.EqualTo(2));
158+
Assert.That(
159+
descriptors.Any(
160+
d =>
161+
d.Templates.Contains(string.Format("Stub{0}_Widget.spark", Path.DirectorySeparatorChar)) &&
162+
d.Templates.Contains(string.Format("Shared{0}ajax.spark", Path.DirectorySeparatorChar))));
163+
Assert.That(
164+
descriptors.Any(
165+
d =>
166+
d.Templates.Contains(string.Format("Stub{0}List.spark", Path.DirectorySeparatorChar)) &&
167+
d.Templates.Contains(string.Format("Shared{0}default.spark", Path.DirectorySeparatorChar))));
168+
});
160169
}
161170

162171
[Test]
@@ -165,9 +174,9 @@ public void FileWithoutSparkExtensionAreIgnored()
165174
var batch = new SparkBatchDescriptor();
166175
batch.For<StubController>();
167176
var descriptors = _factory.CreateDescriptors(batch);
168-
177+
169178
// no templates
170-
Assert.That(descriptors.SelectMany(d=>d.Templates).All(t=>!t.Contains("Helper")));
179+
Assert.That(descriptors.SelectMany(d => d.Templates).All(t => !t.Contains("Helper")));
171180
}
172181

173182
[Test]
@@ -176,12 +185,12 @@ public void ControllersWithHelpersGenerateAccessors()
176185
var batch = new SparkBatchDescriptor();
177186
batch.For<FooController>().Include("index");
178187
_factory.Engine.ViewFolder = new InMemoryViewFolder { { string.Format("foo{0}index.spark", Path.DirectorySeparatorChar), "<p>foo</p>" } };
179-
188+
180189
var descriptors = _factory.CreateDescriptors(batch);
181190

182-
Assert.AreEqual(1, descriptors.Count);
183-
Assert.AreEqual(1, descriptors[0].Accessors.Count);
184-
Assert.AreEqual(typeof(FooHelper).FullName + " Foo", descriptors[0].Accessors[0].Property);
191+
Assert.That(descriptors.Count, Is.EqualTo(1));
192+
Assert.That(descriptors[0].Accessors.Count, Is.EqualTo(1));
193+
Assert.That(descriptors[0].Accessors[0].Property, Is.EqualTo(typeof(FooHelper).FullName + " Foo"));
185194
}
186195
}
187196

src/Castle.MonoRail.Views.Spark.Tests/SparkViewDataTests.cs

+10-6
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void PropertyBagAvailable()
4848
mocks.ReplayAll();
4949
view.Contextualize(engineContext, controllerContext, null, null, null);
5050

51-
Assert.AreEqual("bar", view.ViewData["foo"]);
51+
Assert.That(view.ViewData["foo"], Is.EqualTo("bar"));
5252
}
5353

5454
[Test]
@@ -73,11 +73,15 @@ public void MergingCollectionsLikeVelocity()
7373

7474
view.Contextualize(engineContext, controllerContext, null, null, null);
7575

76-
Assert.AreEqual("controllerPropertyBagValue", view.ViewData["controllerPropertyBagKey"]);
77-
Assert.AreEqual("contextFlashValue", view.ViewData["contextFlashKey"]);
78-
Assert.AreEqual("controllerHelpersValue", view.ViewData["controllerHelpersKey"]);
79-
Assert.AreEqual("contextParamsValue", view.ViewData["contextParamsKey"]);
80-
Assert.AreSame(resource, view.ViewData["controllerResourcesKey"]);
76+
Assert.Multiple(() =>
77+
{
78+
Assert.That(view.ViewData["controllerPropertyBagKey"], Is.EqualTo("controllerPropertyBagValue"));
79+
Assert.That(view.ViewData["contextFlashKey"], Is.EqualTo("contextFlashValue"));
80+
Assert.That(view.ViewData["controllerHelpersKey"], Is.EqualTo("controllerHelpersValue"));
81+
Assert.That(view.ViewData["contextParamsKey"], Is.EqualTo("contextParamsValue"));
82+
83+
Assert.That(view.ViewData["controllerResourcesKey"], Is.SameAs(resource));
84+
});
8185
}
8286
}
8387
}

src/Castle.MonoRail.Views.Spark.Tests/SparkViewFactoryStrictNullBehaviourTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class SparkViewFactoryStrictNullBehaviourTests : SparkViewFactoryTestsBas
2727
{
2828
protected override void Configure()
2929
{
30-
var settings =
30+
var settings =
3131
new SparkSettings()
3232
.SetBaseClassTypeName(typeof(SparkView));
3333

0 commit comments

Comments
 (0)