diff --git a/src/Spring/Spring.Core/Context/Attributes/AssemblyObjectDefinitionScanner.cs b/src/Spring/Spring.Core/Context/Attributes/AssemblyObjectDefinitionScanner.cs index e6f0b9fe..e4f9cf8b 100644 --- a/src/Spring/Spring.Core/Context/Attributes/AssemblyObjectDefinitionScanner.cs +++ b/src/Spring/Spring.Core/Context/Attributes/AssemblyObjectDefinitionScanner.cs @@ -159,7 +159,7 @@ namespace Spring.Context.Attributes /// The registry within which to register the types. public virtual void ScanAndRegisterTypes(IObjectDefinitionRegistry registry) { - IEnumerable configTypes = base.Scan(); + IEnumerable configTypes = Scan(); RegisterDefinitionsForTypes(registry, configTypes); } diff --git a/test/Spring/Spring.Core.Tests/Context/Attributes/AssemblyObjectDefinitionScannerTests.cs b/test/Spring/Spring.Core.Tests/Context/Attributes/AssemblyObjectDefinitionScannerTests.cs new file mode 100644 index 00000000..c179cda2 --- /dev/null +++ b/test/Spring/Spring.Core.Tests/Context/Attributes/AssemblyObjectDefinitionScannerTests.cs @@ -0,0 +1,52 @@ +#region License + +/* + * Copyright © 2010-2011 the original author or authors. + * + * 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. + */ + +#endregion + +using System; +using System.Collections.Generic; + +using NUnit.Framework; + +using Spring.Objects.Factory.Support; + +namespace Spring.Context.Attributes +{ + [TestFixture] + public class AssemblyObjectDefinitionScannerTests + { + [Test] + public void Can_Create_Custom_Scan_Routine() + { + var scanner = new ScanOverridingAssemblyObjectDefinitionScanner(); + var registry = new DefaultListableObjectFactory(); + scanner.ScanAndRegisterTypes(registry); + Assert.That(registry.ObjectDefinitionCount, Is.EqualTo(1), "found multiple definitions"); + Assert.That(registry.GetObject(), Is.Not.Null, + "correct single defintion was not registered"); + } + + private class ScanOverridingAssemblyObjectDefinitionScanner : AssemblyObjectDefinitionScanner + { + public override IEnumerable Scan() + { + return new Type[] {typeof (ComponentScan.ScanComponentsAndAddToContext.ConfigurationImpl)}; + } + } + } +} \ No newline at end of file diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj index 990c40ae..04a141ef 100644 --- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj +++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj @@ -153,6 +153,7 @@ Code +