Commit 7abcc74
Changed files (4)
product
testing
unit
utility
utility
product/testing/unit/utility/SettingsSpecs.cs
@@ -0,0 +1,32 @@
+using System.Collections.Specialized;
+using gorilla.utility;
+using Machine.Specifications;
+
+namespace specs.unit.utility
+{
+ public class SettingsSpecs
+ {
+ public abstract class concern
+ {
+ Establish context = () =>
+ {
+ settings = new NameValueCollection();
+ sut = new Settings(settings);
+ };
+
+ static protected Settings sut;
+ static protected NameValueCollection settings;
+ }
+
+ public class when_pulling_out_a_setting : concern
+ {
+ It should_return_the_correct_value = () => result.should_be_equal_to("blah");
+
+ Establish context = () => { settings["the.key"] = "blah"; };
+
+ Because of = () => { result = sut.named<string>("the.key"); };
+
+ static string result;
+ }
+ }
+}
\ No newline at end of file
product/testing/specs.csproj
@@ -82,6 +82,7 @@
<Compile Include="unit\infrastructure\logging\LogSpecs.cs" />
<Compile Include="unit\infrastructure\proxies\ProxyFactorySpecs.cs" />
<Compile Include="unit\infrastructure\registries\DefaultRegistrySpecs.cs" />
+ <Compile Include="unit\utility\SettingsSpecs.cs" />
<Compile Include="unit\utility\ConfigurationExtensionsSpecs.cs" />
<Compile Include="unit\utility\DateSpecs.cs" />
<Compile Include="unit\utility\EnumerableExtensionsSpecs.cs" />
product/utility/Settings.cs
@@ -0,0 +1,19 @@
+using System.Collections.Specialized;
+
+namespace gorilla.utility
+{
+ public class Settings
+ {
+ NameValueCollection settings;
+
+ public Settings(NameValueCollection settings)
+ {
+ this.settings = settings;
+ }
+
+ public T named<T>(string key)
+ {
+ return settings[key].downcast_to<T>();
+ }
+ }
+}
\ No newline at end of file
product/utility/utility.csproj
@@ -57,14 +57,6 @@
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
- <Reference Include="System.Xml.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.DataSetExtensions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Clock.cs" />
@@ -100,6 +92,7 @@
<Compile Include="Parser.cs" />
<Compile Include="Query.cs" />
<Compile Include="Registry.cs" />
+ <Compile Include="Settings.cs" />
<Compile Include="Specification.cs" />
<Compile Include="State.cs" />
<Compile Include="SubjectOf.cs" />