diff --git a/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs b/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs index 914b3ae3..8917d992 100644 --- a/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs +++ b/test/Spring/Spring.Core.Tests/Context/Support/AbstractApplicationContextTests.cs @@ -212,10 +212,17 @@ namespace Spring.Context.Support } } + private bool objectFactorySet = false; public IObjectFactory ObjectFactory { set { + // ignore multiple calls (due to OF also set during AbstractObjectFactory.AddObjectPostProcessor()) + if (objectFactorySet) + { + return; + } + objectFactorySet = true; Assert.AreEqual(ObjectProcessingState.SetObjectFactory, this.CurrentState); this.CurrentState++; } diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs index 9f6b1649..543148b3 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/AbstractObjectFactoryTests.cs @@ -1,7 +1,7 @@ #region License /* - * Copyright 2002-2004 the original author or authors. + * Copyright 2002-2009 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. @@ -173,6 +173,15 @@ namespace Spring.Objects.Factory Assert.IsFalse(lb.Destroyed, "Was destroyed"); } + [Test(Description = "SPRNET-1208")] + public void AddObjectFactoryOnObjectFactoryAwareObjectPostProcessors() + { + AbstractObjectFactory aof = ObjectFactory; + LifecycleObject.PostProcessor lb = new LifecycleObject.PostProcessor(); + aof.AddObjectPostProcessor(lb); + Assert.AreSame( aof, lb.ObjectFactory ); + } + [Test] public void FindsValidInstance() { @@ -287,11 +296,7 @@ namespace Spring.Objects.Factory [ExpectedException(typeof(ArgumentNullException))] public void RegisterNullCustomTypeConverter() { - AbstractObjectFactory fac = ObjectFactory as AbstractObjectFactory; - if(fac != null) - { - fac.RegisterCustomConverter(null, null); - } + ObjectFactory.RegisterCustomConverter(null, null); } [Test] @@ -431,11 +436,11 @@ namespace Spring.Objects.Factory } // Create alias - ((AbstractObjectFactory) ObjectFactory).RegisterAlias("rod", alias); + ObjectFactory.RegisterAlias("rod", alias); object rod = ObjectFactory.GetObject("rod"); object aliasRod = ObjectFactory.GetObject(alias); Assert.IsTrue(rod == aliasRod); - ((AbstractObjectFactory) ObjectFactory).RegisterAlias("father", alias); + ObjectFactory.RegisterAlias("father", alias); } [Test] diff --git a/test/Spring/Spring.Core.Tests/Objects/Factory/LifecycleObject.cs b/test/Spring/Spring.Core.Tests/Objects/Factory/LifecycleObject.cs index 2863f741..325e6d69 100644 --- a/test/Spring/Spring.Core.Tests/Objects/Factory/LifecycleObject.cs +++ b/test/Spring/Spring.Core.Tests/Objects/Factory/LifecycleObject.cs @@ -161,7 +161,7 @@ namespace Spring.Objects.Factory { #endregion #region Inner Class : PostProcessor - public class PostProcessor : IObjectPostProcessor + public class PostProcessor : IObjectPostProcessor, IObjectFactoryAware { public object PostProcessBeforeInitialization (object obj, string name) @@ -181,6 +181,14 @@ namespace Spring.Objects.Factory { } return obj; } + + private IObjectFactory objectFactory; + + public IObjectFactory ObjectFactory + { + set { objectFactory=value; } + get { return objectFactory; } + } } #endregion }