User: xtoff
Date: 2010/02/22 04:29 PM
Added:
/InversionOfControl/trunk/src/Castle.MicroKernel.Tests/
ComponentArgumentsEnumeratorTestCase.cs
Modified:
/InversionOfControl/trunk/src/Castle.MicroKernel.Tests/
Castle.MicroKernel.Tests-vs2008.csproj
/InversionOfControl/trunk/src/Castle.MicroKernel/Context/
ComponentArgumentsEnumerator.cs
Log:
- fixed bug in ComponentArgumentsEnumerator - enumerator didn't really work.
File Changes:
Directory: /InversionOfControl/trunk/src/Castle.MicroKernel.Tests/
==================================================================
File [modified]: Castle.MicroKernel.Tests-vs2008.csproj
Delta lines: +119 -0
===================================================================
---
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/ComponentArgumentsEnumeratorTestCase.cs
(rev 0)
+++
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/ComponentArgumentsEnumeratorTestCase.cs
2010-02-22 23:28:59 UTC (rev 6761)
@@ -0,0 +1,119 @@
+// Copyright 2004-2010 Castle Project - http://www.castleproject.org/
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+namespace Castle.MicroKernel.Tests
+{
+ using System.Collections.Generic;
+
+ using Castle.MicroKernel.Context;
+
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class ComponentArgumentsEnumeratorTestCase
+ {
+ private ComponentArgumentsEnumerator enumerator;
+
+ private void BuildEnumeratorFor(params IArgumentsStore[] stores)
+ {
+ enumerator = new ComponentArgumentsEnumerator(new
List<IArgumentsStore>(stores));
+ return;
+ }
+
+ [Test]
+ public void Can_enumerate_single_empty()
+ {
+ BuildEnumeratorFor(new NamedArgumentsStore());
+ Assert.IsNull(enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_empty()
+ {
+ BuildEnumeratorFor(new NamedArgumentsStore(), new
TypedArgumentsStore());
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_first_empty()
+ {
+ BuildEnumeratorFor(new NamedArgumentsStore { { "foo",
"bar" } }, new TypedArgumentsStore());
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("bar", enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_non_empty()
+ {
+ BuildEnumeratorFor(new TypedArgumentsStore { {
typeof(object), "baz" } },
+ new NamedArgumentsStore { { "foo",
"bar" } });
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("baz", enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("bar", enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_non_empty_first_bigger()
+ {
+ BuildEnumeratorFor(new NamedArgumentsStore { { "foo",
"bar" }, { "fizz", "buzz" } },
+ new TypedArgumentsStore { {
typeof(object), "baz" } });
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("bar", enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("buzz", enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("baz", enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_non_empty_second_bigger()
+ {
+ BuildEnumeratorFor(new TypedArgumentsStore { {
typeof(object), "baz" } },
+ new NamedArgumentsStore { { "foo",
"bar" }, { "fizz", "buzz" } });
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("baz", enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("bar", enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("buzz", enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+
+ [Test]
+ public void Can_enumerate_two_second_empty()
+ {
+ BuildEnumeratorFor(new TypedArgumentsStore(), new
NamedArgumentsStore { { "foo", "bar" } });
+
+ Assert.IsNull(enumerator.Value);
+ Assert.IsTrue(enumerator.MoveNext());
+ Assert.AreEqual("bar", enumerator.Value);
+ Assert.IsFalse(enumerator.MoveNext());
+ }
+ }
+}
File [added]: ComponentArgumentsEnumeratorTestCase.cs
Delta lines: +0 -0
===================================================================
Directory: /InversionOfControl/trunk/src/Castle.MicroKernel/Context/
====================================================================
File [modified]: ComponentArgumentsEnumerator.cs
Delta lines: +1 -0
===================================================================
---
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Castle.MicroKernel.Tests-vs2008.csproj
2010-02-22 22:19:30 UTC (rev 6760)
+++
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Castle.MicroKernel.Tests-vs2008.csproj
2010-02-22 23:28:59 UTC (rev 6761)
@@ -195,6 +195,7 @@
<Compile Include="ClassComponents\ServiceUser.cs" />
<Compile Include="ClassComponents\ServiceUser2.cs" />
<Compile Include="ClassComponents\TwoInterfacesImpl.cs" />
+ <Compile Include="ComponentArgumentsEnumeratorTestCase.cs" />
<Compile Include="Configuration\Components\ClassWithComplexParameter.cs" />
<Compile Include="Configuration\Components\ClassWithConstructors.cs">
--
You received this message because you are subscribed to the Google Groups
"Castle Project Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-commits?hl=en.