Changed failing DotNetMock tests to use Rhino, one test needs checkup to get it out from ignore
This commit is contained in:
@@ -24,8 +24,8 @@ using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -38,6 +38,18 @@ namespace Spring.Objects.Factory.Config
|
||||
[TestFixture]
|
||||
public sealed class CustomConverterConfigurerTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private IConfigurableListableObjectFactory factory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
factory = (IConfigurableListableObjectFactory)
|
||||
mocks.CreateMock(typeof(IConfigurableListableObjectFactory));
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ObjectInitializationException))]
|
||||
public void UseInvalidKeyForConverterMapKey()
|
||||
@@ -45,13 +57,11 @@ namespace Spring.Objects.Factory.Config
|
||||
IDictionary converters = new Hashtable();
|
||||
converters.Add(12, typeof(DateTimeConverter));
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
IConfigurableListableObjectFactory factory
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
config.CustomConverters = converters;
|
||||
config.PostProcessObjectFactory(factory);
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -61,14 +71,12 @@ namespace Spring.Objects.Factory.Config
|
||||
IDictionary converters = new Hashtable();
|
||||
converters.Add( typeof(DateTime), null);
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
IConfigurableListableObjectFactory factory
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
config.CustomConverters = converters;
|
||||
config.PostProcessObjectFactory(factory);
|
||||
}
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ObjectInitializationException))]
|
||||
@@ -78,14 +86,12 @@ namespace Spring.Objects.Factory.Config
|
||||
// purposely misspelled... :D
|
||||
converters.Add("Systemm.Date", typeof(DateTimeConverter));
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
IConfigurableListableObjectFactory factory
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
config.CustomConverters = converters;
|
||||
config.PostProcessObjectFactory(factory);
|
||||
}
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Just tests that the configurer doesn't blow up and
|
||||
@@ -94,32 +100,37 @@ namespace Spring.Objects.Factory.Config
|
||||
[Test]
|
||||
public void DontSupplyAnyCustomConverters()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
IConfigurableListableObjectFactory factory
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
config.CustomConverters = null;
|
||||
config.PostProcessObjectFactory(factory);
|
||||
mock.Verify();
|
||||
mocks.ReplayAll();
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SunnyDayScenario()
|
||||
{
|
||||
IDictionary converters = new Hashtable();
|
||||
converters.Add( typeof(DateTime), new DateTimeConverter());
|
||||
converters.Add( typeof(Color), new ColorConverter());
|
||||
Type dateTimeType = typeof(DateTime);
|
||||
DateTimeConverter dateTimeConverter = new DateTimeConverter();
|
||||
Type colorType = typeof(Color);
|
||||
ColorConverter colorConverter = new ColorConverter();
|
||||
|
||||
converters.Add(dateTimeType, dateTimeConverter);
|
||||
converters.Add(colorType, colorConverter);
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
mock.Expect("RegisterCustomConverter");
|
||||
mock.Expect("RegisterCustomConverter");
|
||||
IConfigurableListableObjectFactory mockFactory
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
factory.RegisterCustomConverter(dateTimeType, dateTimeConverter);
|
||||
factory.RegisterCustomConverter(colorType, colorConverter);
|
||||
|
||||
mocks.ReplayAll();
|
||||
|
||||
CustomConverterConfigurer config = new CustomConverterConfigurer();
|
||||
config.CustomConverters = converters;
|
||||
config.PostProcessObjectFactory(mockFactory);
|
||||
mock.Verify();
|
||||
config.PostProcessObjectFactory(factory);
|
||||
|
||||
mocks.VerifyAll();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
#region Imports
|
||||
|
||||
using System;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -35,6 +35,16 @@ namespace Spring.Objects.Factory.Config
|
||||
[TestFixture]
|
||||
public sealed class ObjectReferenceFactoryObjectTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private IObjectFactory factory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
factory = (IObjectFactory) mocks.CreateMock(typeof(IObjectFactory));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ArgumentException))]
|
||||
public void NullTargetObjectName()
|
||||
@@ -57,72 +67,68 @@ namespace Spring.Objects.Factory.Config
|
||||
[Test]
|
||||
public void FactoryDoesNotContainTargetObject()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("ContainsObject", false);
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(factory.ContainsObject("bojangles")).Return(false);
|
||||
mocks.ReplayAll();
|
||||
|
||||
ObjectReferenceFactoryObject fac = new ObjectReferenceFactoryObject();
|
||||
fac.TargetObjectName = "bojangles";
|
||||
try
|
||||
{
|
||||
// simulate IFactoryObjectAware interface...
|
||||
fac.ObjectFactory = mockFactory;
|
||||
fac.ObjectFactory = factory;
|
||||
Assert.Fail("Must have bailed with a " +
|
||||
"NoSuchObjectDefinitionException 'cos the object doesn't " +
|
||||
"exist in the associated factory.");
|
||||
}
|
||||
catch (NoSuchObjectDefinitionException)
|
||||
{
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DelegatesThroughToFactoryFor_IsSingleton()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("ContainsObject", true);
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(factory.ContainsObject("bojangles")).Return(true);
|
||||
Expect.Call(factory.IsSingleton("bojangles")).Return(true);
|
||||
mocks.ReplayAll();
|
||||
|
||||
ObjectReferenceFactoryObject fac = new ObjectReferenceFactoryObject();
|
||||
ObjectReferenceFactoryObject fac = new ObjectReferenceFactoryObject();
|
||||
fac.TargetObjectName = "bojangles";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
fac.ObjectFactory = factory;
|
||||
|
||||
Assert.IsTrue(fac.IsSingleton);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DelegatesThroughToFactoryFor_GetObject()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("ContainsObject", true);
|
||||
mock.ExpectAndReturn("GetObject", "Rick");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(factory.ContainsObject("bojangles")).Return(true);
|
||||
Expect.Call(factory.GetObject("bojangles")).Return("Rick");
|
||||
mocks.ReplayAll();
|
||||
|
||||
ObjectReferenceFactoryObject fac = new ObjectReferenceFactoryObject();
|
||||
fac.TargetObjectName = "bojangles";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
fac.ObjectFactory = factory;
|
||||
|
||||
Assert.AreEqual("Rick", fac.GetObject());
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DelegatesThroughToFactoryFor_ObjectType()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("ContainsObject", true);
|
||||
mock.ExpectAndReturn("GetType", GetType());
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(factory.ContainsObject("bojangles")).Return(true);
|
||||
Expect.Call(factory.GetType("bojangles")).Return(GetType());
|
||||
mocks.ReplayAll();
|
||||
|
||||
ObjectReferenceFactoryObject fac = new ObjectReferenceFactoryObject();
|
||||
fac.TargetObjectName = "bojangles";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
fac.ObjectFactory = factory;
|
||||
|
||||
Assert.AreEqual(GetType(), fac.ObjectType);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
#region Imports
|
||||
|
||||
using System;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
using Spring.Core;
|
||||
|
||||
#endregion
|
||||
@@ -36,13 +36,22 @@ namespace Spring.Objects.Factory.Config
|
||||
[TestFixture]
|
||||
public sealed class PropertyPathFactoryObjectTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private IObjectFactory mockFactory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
mockFactory = (IObjectFactory) mocks.CreateMock(typeof (IObjectFactory));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetObject_ViaTargetObjectName()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject("Fiona Apple", 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject("Fiona Apple", 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.TargetObjectName = "foo";
|
||||
@@ -50,18 +59,17 @@ namespace Spring.Objects.Factory.Config
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetObject_ViaTargetObjectNameWithNestedPropertyPath()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
TestObject target = new TestObject("Fiona Apple", 28);
|
||||
target.Spouse = target;
|
||||
mock.ExpectAndReturn("GetObject", target, "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(target);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.TargetObjectName = "foo";
|
||||
@@ -69,33 +77,31 @@ namespace Spring.Objects.Factory.Config
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetObject_ViaObjectName()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject("Fiona Apple", 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject("Fiona Apple", 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = "foo.name";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ArgumentException))]
|
||||
public void GetObject_ViaObjectNameThatStartsWithAPeriod()
|
||||
{
|
||||
IDynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject("Fiona Apple", 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject("Fiona Apple", 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = ".foo.name";
|
||||
@@ -105,62 +111,58 @@ namespace Spring.Objects.Factory.Config
|
||||
[Test]
|
||||
public void GetObject_MakeSureLeadingAndTrailingWhitspaceIsTrimmed()
|
||||
{
|
||||
IDynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject("Fiona Apple", 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject("Fiona Apple", 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = " \nfoo.name ";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetObject_ViaObjectNameWithNestedPropertyPath()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
TestObject target = new TestObject("Fiona Apple", 28);
|
||||
target.Spouse = target;
|
||||
mock.ExpectAndReturn("GetObject", target, "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(target);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = "foo.spouse.name";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(NullValueInNestedPathException))]
|
||||
public void GetObject_ViaObjectNameWithNullInNestedPropertyPath()
|
||||
{
|
||||
DynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject("Fiona Apple", 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject("Fiona Apple", 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = "foo.spouse.name";
|
||||
fac.ObjectFactory = mockFactory;
|
||||
string name = (string) fac.GetObject();
|
||||
Assert.AreEqual("Fiona Apple", name);
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(FatalObjectException))]
|
||||
public void GetObject_PropertyPathEvaluatesToNull()
|
||||
{
|
||||
IDynamicMock mock = new DynamicMock(typeof(IObjectFactory));
|
||||
mock.ExpectAndReturn("IsSingleton", true);
|
||||
mock.ExpectAndReturn("GetObject", new TestObject(null, 28), "foo");
|
||||
IObjectFactory mockFactory = (IObjectFactory) mock.Object;
|
||||
Expect.Call(mockFactory.IsSingleton("foo")).Return(true);
|
||||
Expect.Call(mockFactory.GetObject("foo")).Return(new TestObject(null, 28));
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPathFactoryObject fac = new PropertyPathFactoryObject();
|
||||
fac.ObjectName = "foo.name";
|
||||
|
||||
@@ -24,8 +24,8 @@ using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
using Spring.Collections;
|
||||
using Spring.Context;
|
||||
using Spring.Context.Support;
|
||||
@@ -44,17 +44,24 @@ namespace Spring.Objects.Factory.Config
|
||||
[TestFixture]
|
||||
public sealed class PropertyPlaceholderConfigurerTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private static string testConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=;";
|
||||
private static string testConnectionStringTwo = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Northwind.mdb;User ID=Admin;Password=Ernie;";
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ObjectInitializationException))]
|
||||
public void MismatchBetweenNumberOfConfigNamesAndNumberOfLocations()
|
||||
{
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.Locations = new IResource [] {(IResource) new DynamicMock(typeof(IResource)).Object}; // will never get to the point where we check the validity
|
||||
cfg.Locations = new IResource[] { (IResource) mocks.CreateMock(typeof(IResource)) }; // will never get to the point where we check the validity
|
||||
cfg.ConfigSections = new string[] { "", "" };
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) mocks.DynamicMock(typeof(IConfigurableListableObjectFactory)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -62,13 +69,15 @@ namespace Spring.Objects.Factory.Config
|
||||
public void OneConfigNameIsOKForLotsOfLocations()
|
||||
{
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
DynamicMock mock = new DynamicMock(typeof(IResource));
|
||||
mock.ExpectAndReturn("Exists", true);
|
||||
mock.ExpectAndThrow("InputStream", new FileNotFoundException());
|
||||
cfg.Locations = new IResource [] {(IResource) mock.Object};
|
||||
IResource mock = (IResource) mocks.CreateMock(typeof(IResource));
|
||||
Expect.Call(mock.Exists).Return(true);
|
||||
Expect.Call(mock.InputStream).Throw(new FileNotFoundException());
|
||||
mocks.ReplayAll();
|
||||
|
||||
cfg.Locations = new IResource [] {mock};
|
||||
cfg.ConfigSections = new string[] { "" };
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
}
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) mocks.DynamicMock(typeof(IConfigurableListableObjectFactory)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof(ObjectInitializationException))]
|
||||
@@ -76,27 +85,31 @@ namespace Spring.Objects.Factory.Config
|
||||
{
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.IgnoreResourceNotFound = false;
|
||||
DynamicMock mock = new DynamicMock(typeof(IResource));
|
||||
mock.ExpectAndReturn("Exists", false);
|
||||
cfg.Locations = new IResource [] {(IResource) mock.Object};
|
||||
IResource mock = (IResource) mocks.CreateMock(typeof(IResource));
|
||||
Expect.Call(mock.Exists).Return(false);
|
||||
mocks.ReplayAll();
|
||||
|
||||
cfg.Locations = new IResource [] { mock};
|
||||
cfg.ConfigSections = new string[] { "" };
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
}
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) mocks.DynamicMock(typeof(IConfigurableListableObjectFactory)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DoesNotChokeOnBadResourceLocationIfIgnoreBadResourcesFlagSetToTrue()
|
||||
{
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.IgnoreResourceNotFound = true;
|
||||
DynamicMock mockResource = new DynamicMock(typeof(IResource));
|
||||
mockResource.ExpectAndReturn("Exists", false);
|
||||
cfg.Location = (IResource) mockResource.Object;
|
||||
IResource mockResource = (IResource) mocks.CreateMock(typeof(IResource));
|
||||
Expect.Call(mockResource.Exists).Return(false);
|
||||
cfg.Location = mockResource;
|
||||
cfg.ConfigSections = new string[] { "" };
|
||||
DynamicMock mockFactory = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
mockFactory.ExpectAndReturn("GetObjectDefinitionNames", new string[] {});
|
||||
cfg.PostProcessObjectFactory((IConfigurableListableObjectFactory) mockFactory.Object);
|
||||
mockResource.Verify();
|
||||
mockFactory.Verify();
|
||||
IConfigurableListableObjectFactory mockFactory = (IConfigurableListableObjectFactory)mocks.DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
Expect.Call(mockFactory.GetObjectDefinitionNames()).Return(new string[] {});
|
||||
mocks.ReplayAll();
|
||||
|
||||
cfg.PostProcessObjectFactory(mockFactory);
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -134,21 +147,21 @@ namespace Spring.Objects.Factory.Config
|
||||
pvs.Add(theProperty, placeholder);
|
||||
RootObjectDefinition def = new RootObjectDefinition(typeof(TestObject), pvs);
|
||||
|
||||
IDynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
mock.ExpectAndReturn("GetObjectDefinitionNames", new string [] {defName});
|
||||
mock.ExpectAndReturn("GetObjectDefinition", def, defName);
|
||||
IConfigurableListableObjectFactory fac = (IConfigurableListableObjectFactory) mock.Object;
|
||||
IConfigurableListableObjectFactory mock = (IConfigurableListableObjectFactory) mocks.CreateMock(typeof(IConfigurableListableObjectFactory));
|
||||
Expect.Call(mock.GetObjectDefinitionNames()).Return(new string [] {defName});
|
||||
Expect.Call(mock.GetObjectDefinition(defName)).Return(def);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
NameValueCollection defaultProperties = new NameValueCollection();
|
||||
const string expectedName = "Rick Evans";
|
||||
defaultProperties.Add(theProperty, expectedName);
|
||||
cfg.Properties = defaultProperties;
|
||||
cfg.PostProcessObjectFactory(fac);
|
||||
cfg.PostProcessObjectFactory(mock);
|
||||
Assert.AreEqual(expectedName, def.PropertyValues.GetPropertyValue(theProperty).Value,
|
||||
"Property placeholder value was not replaced with the resolved value.");
|
||||
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -375,22 +388,22 @@ namespace Spring.Objects.Factory.Config
|
||||
const string expectedName = "ba${foo}r";
|
||||
properties.Add("foo", expectedName);
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof (IConfigurableListableObjectFactory));
|
||||
mock.ExpectAndReturn("GetObjectDefinitionNames", new string[] {"foo"});
|
||||
mock.ExpectAndReturn("GetObjectDefinition", def);
|
||||
IConfigurableListableObjectFactory fac
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
IConfigurableListableObjectFactory mock = (IConfigurableListableObjectFactory) mocks.CreateMock(typeof (IConfigurableListableObjectFactory));
|
||||
Expect.Call(mock.GetObjectDefinitionNames()).Return(new string[] {"foo"});
|
||||
Expect.Call(mock.GetObjectDefinition(null)).IgnoreArguments().Return(def);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.Properties = properties;
|
||||
try
|
||||
{
|
||||
cfg.PostProcessObjectFactory(fac);
|
||||
cfg.PostProcessObjectFactory(mock);
|
||||
Assert.Fail("Should have raised an ObjectDefinitionStoreException by this point.");
|
||||
}
|
||||
catch (ObjectDefinitionStoreException)
|
||||
{
|
||||
}
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -406,16 +419,16 @@ namespace Spring.Objects.Factory.Config
|
||||
const string expectedName = "Rick";
|
||||
properties.Add("hope.floats", expectedName);
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof (IConfigurableListableObjectFactory));
|
||||
mock.ExpectAndReturn("GetObjectDefinitionNames", new string[] {"foo"});
|
||||
mock.ExpectAndReturn("GetObjectDefinition", def);
|
||||
IConfigurableListableObjectFactory fac
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
IConfigurableListableObjectFactory mock = (IConfigurableListableObjectFactory) mocks.CreateMock(typeof (IConfigurableListableObjectFactory));
|
||||
Expect.Call(mock.GetObjectDefinitionNames()).Return(new string[] {"foo"});
|
||||
Expect.Call(mock.GetObjectDefinition(null)).IgnoreArguments().Return(def);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.Properties = properties;
|
||||
cfg.PostProcessObjectFactory(fac);
|
||||
cfg.PostProcessObjectFactory(mock);
|
||||
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
|
||||
Assert.AreEqual(expectedName,
|
||||
def.ConstructorArgumentValues.GetNamedArgumentValue("name").Value,
|
||||
@@ -435,17 +448,17 @@ namespace Spring.Objects.Factory.Config
|
||||
const string expectedName = "Rick";
|
||||
properties.Add("hope.floats", expectedName);
|
||||
|
||||
DynamicMock mock = new DynamicMock(typeof (IConfigurableListableObjectFactory));
|
||||
mock.ExpectAndReturn("GetObjectDefinitionNames", new string[] {"foo"});
|
||||
mock.ExpectAndReturn("GetObjectDefinition", def);
|
||||
IConfigurableListableObjectFactory fac
|
||||
= (IConfigurableListableObjectFactory) mock.Object;
|
||||
IConfigurableListableObjectFactory mock = (IConfigurableListableObjectFactory) mocks.CreateMock(typeof (IConfigurableListableObjectFactory));
|
||||
Expect.Call(mock.GetObjectDefinitionNames()).Return(new string[] {"foo"});
|
||||
Expect.Call(mock.GetObjectDefinition(null)).IgnoreArguments().Return(def);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.PlaceholderPrefix = cfg.PlaceholderSuffix = "#";
|
||||
cfg.Properties = properties;
|
||||
cfg.PostProcessObjectFactory(fac);
|
||||
cfg.PostProcessObjectFactory(mock);
|
||||
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
|
||||
Assert.AreEqual(expectedName,
|
||||
def.ConstructorArgumentValues.GetNamedArgumentValue("name").Value,
|
||||
@@ -532,17 +545,17 @@ namespace Spring.Objects.Factory.Config
|
||||
pvs.Add("name", placeholder);
|
||||
RootObjectDefinition def = new RootObjectDefinition(typeof(TestObject), pvs);
|
||||
|
||||
IDynamicMock mock = new DynamicMock(typeof(IConfigurableListableObjectFactory));
|
||||
mock.ExpectAndReturn("GetObjectDefinitionNames", new string [] {defName});
|
||||
mock.ExpectAndReturn("GetObjectDefinition", def, defName);
|
||||
IConfigurableListableObjectFactory fac = (IConfigurableListableObjectFactory) mock.Object;
|
||||
IConfigurableListableObjectFactory mock = (IConfigurableListableObjectFactory) mocks.CreateMock(typeof(IConfigurableListableObjectFactory));
|
||||
Expect.Call(mock.GetObjectDefinitionNames()).Return(new string [] {defName});
|
||||
Expect.Call(mock.GetObjectDefinition(defName)).Return(def);
|
||||
mocks.ReplayAll();
|
||||
|
||||
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
|
||||
cfg.IgnoreUnresolvablePlaceholders = true;
|
||||
cfg.PostProcessObjectFactory(fac);
|
||||
cfg.PostProcessObjectFactory(mock);
|
||||
Assert.AreEqual(placeholder, foo.Name);
|
||||
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -20,13 +20,12 @@
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
using Spring.Collections;
|
||||
using Spring.Context.Support;
|
||||
using Spring.Core.TypeResolution;
|
||||
using Spring.Util;
|
||||
using Spring.Objects.Factory.Support;
|
||||
using Spring.Context;
|
||||
|
||||
namespace Spring.Objects.Factory.Config
|
||||
@@ -38,6 +37,17 @@ namespace Spring.Objects.Factory.Config
|
||||
[TestFixture]
|
||||
public class TypeAliasConfigurerTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private IConfigurableListableObjectFactory factory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
factory = (IConfigurableListableObjectFactory)
|
||||
mocks.CreateMock(typeof (IConfigurableListableObjectFactory));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Serialization()
|
||||
{
|
||||
@@ -62,7 +72,7 @@ namespace Spring.Objects.Factory.Config
|
||||
TypeAliasConfigurer typeAliasConfigurer = new TypeAliasConfigurer();
|
||||
typeAliasConfigurer.TypeAliases = typeAliases;
|
||||
|
||||
typeAliasConfigurer.PostProcessObjectFactory((IConfigurableListableObjectFactory)new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
typeAliasConfigurer.PostProcessObjectFactory(factory);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -75,7 +85,7 @@ namespace Spring.Objects.Factory.Config
|
||||
TypeAliasConfigurer typeAliasConfigurer = new TypeAliasConfigurer();
|
||||
typeAliasConfigurer.TypeAliases = typeAliases;
|
||||
|
||||
typeAliasConfigurer.PostProcessObjectFactory((IConfigurableListableObjectFactory)new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
typeAliasConfigurer.PostProcessObjectFactory(factory);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -116,15 +126,15 @@ namespace Spring.Objects.Factory.Config
|
||||
Assert.AreEqual(26, ((TestObject)obj3).Age);
|
||||
}
|
||||
|
||||
private static void CreateConfigurerAndTestLinkedList(IDictionary typeAliases)
|
||||
private void CreateConfigurerAndTestLinkedList(IDictionary typeAliases)
|
||||
{
|
||||
TypeAliasConfigurer typeAliasConfigurer = new TypeAliasConfigurer();
|
||||
typeAliasConfigurer.TypeAliases = typeAliases;
|
||||
|
||||
typeAliasConfigurer.Order = 1;
|
||||
|
||||
|
||||
typeAliasConfigurer.PostProcessObjectFactory((IConfigurableListableObjectFactory)new DynamicMock(typeof(IConfigurableListableObjectFactory)).Object);
|
||||
|
||||
typeAliasConfigurer.PostProcessObjectFactory(factory);
|
||||
|
||||
//todo investigate mocking the typeregistry, for now ask the actual one for information.
|
||||
Assert.IsTrue(TypeRegistry.ContainsAlias("LinkedList"),
|
||||
|
||||
@@ -22,9 +22,8 @@
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Spring.Objects.Factory.Config;
|
||||
using Rhino.Mocks;
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -37,45 +36,55 @@ namespace Spring.Objects.Factory.Support
|
||||
[TestFixture]
|
||||
public sealed class DelegatingMethodReplacerTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void InstantiationWithNullDefinition()
|
||||
{
|
||||
IDynamicMock mock = new DynamicMock(typeof (IObjectFactory));
|
||||
new DelegatingMethodReplacer(null, (IObjectFactory) mock.Object);
|
||||
IObjectFactory factory = (IObjectFactory) mocks.CreateMock(typeof (IObjectFactory));
|
||||
new DelegatingMethodReplacer(null, factory);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Test]
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void InstantiationWithNullFactory()
|
||||
{
|
||||
IDynamicMock mock = new DynamicMock(typeof(IConfigurableObjectDefinition));
|
||||
new DelegatingMethodReplacer((IConfigurableObjectDefinition)mock.Object, null);
|
||||
IConfigurableObjectDefinition mock = (IConfigurableObjectDefinition)
|
||||
mocks.CreateMock(typeof(IConfigurableObjectDefinition));
|
||||
new DelegatingMethodReplacer(mock, null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void SunnyDayPath()
|
||||
{
|
||||
IDynamicMock mockFactory = new DynamicMock(typeof (IObjectFactory));
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IConfigurableObjectDefinition));
|
||||
IDynamicMock mockReplacer = new DynamicMock(typeof (IMethodReplacer));
|
||||
IObjectFactory mockFactory = (IObjectFactory) mocks.CreateMock(typeof(IObjectFactory));
|
||||
IConfigurableObjectDefinition mockDefinition = (IConfigurableObjectDefinition) mocks.CreateMock(typeof(IConfigurableObjectDefinition));
|
||||
IMethodReplacer mockReplacer = (IMethodReplacer) mocks.CreateMock(typeof(IMethodReplacer));
|
||||
|
||||
|
||||
const string ReplacerObjectName = "replacer";
|
||||
mockFactory.ExpectAndReturn("GetObject", mockReplacer.Object, ReplacerObjectName);
|
||||
Expect.Call(mockFactory.GetObject(ReplacerObjectName)).Return(mockReplacer);
|
||||
|
||||
ReplacedMethodOverride ovr = new ReplacedMethodOverride("SunnyDayPath", ReplacerObjectName);
|
||||
MethodOverrides overrides = new MethodOverrides();
|
||||
overrides.Add(ovr);
|
||||
mockDefinition.ExpectAndReturn("MethodOverrides", overrides);
|
||||
Expect.Call(mockDefinition.MethodOverrides).Return(overrides);
|
||||
|
||||
mockReplacer.ExpectAndReturn("Implement", null);
|
||||
DelegatingMethodReplacer replacer = new DelegatingMethodReplacer((IConfigurableObjectDefinition)mockDefinition.Object, (IObjectFactory)mockFactory.Object);
|
||||
Expect.Call(mockReplacer.Implement(null, null, null)).IgnoreArguments().Return(null);
|
||||
mocks.ReplayAll();
|
||||
|
||||
DelegatingMethodReplacer replacer = new DelegatingMethodReplacer(mockDefinition, mockFactory);
|
||||
MethodInfo method = (MethodInfo) MethodBase.GetCurrentMethod();
|
||||
replacer.Implement(this, method, new object[] {});
|
||||
|
||||
mockFactory.Verify();
|
||||
mockDefinition.Verify();
|
||||
mockReplacer.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,8 +21,8 @@
|
||||
#region Imports
|
||||
|
||||
using System;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
using Spring.Objects.Factory.Config;
|
||||
|
||||
#endregion
|
||||
@@ -36,49 +36,53 @@ namespace Spring.Objects.Factory.Support
|
||||
[TestFixture]
|
||||
public sealed class ObjectDefinitionReaderUtilsTests
|
||||
{
|
||||
private MockRepository mocks;
|
||||
private IObjectDefinitionRegistry registry;
|
||||
private IObjectDefinition definition;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mocks = new MockRepository();
|
||||
registry = (IObjectDefinitionRegistry)
|
||||
mocks.CreateMock(typeof(IObjectDefinitionRegistry));
|
||||
|
||||
definition = (IObjectDefinition)
|
||||
mocks.CreateMock(typeof (IObjectDefinition));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RegisterObjectDefinitionSunnyDay()
|
||||
{
|
||||
IDynamicMock mockRegistry = new DynamicMock(typeof (IObjectDefinitionRegistry));
|
||||
mockRegistry.Expect("RegisterObjectDefinition");
|
||||
registry.RegisterObjectDefinition(null, null);
|
||||
LastCall.IgnoreArguments();
|
||||
mocks.ReplayAll();
|
||||
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IObjectDefinition));
|
||||
IObjectDefinition definition = (IObjectDefinition) mockDefinition.Object;
|
||||
|
||||
IObjectDefinitionRegistry registry = (IObjectDefinitionRegistry) mockRegistry.Object;
|
||||
ObjectDefinitionHolder holder = new ObjectDefinitionHolder(definition, "foo");
|
||||
|
||||
ObjectDefinitionReaderUtils.RegisterObjectDefinition(holder, registry);
|
||||
mockRegistry.Verify();
|
||||
mockDefinition.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void RegisterObjectDefinitionSunnyDayWithAliases()
|
||||
{
|
||||
IDynamicMock mockRegistry = new DynamicMock(typeof (IObjectDefinitionRegistry));
|
||||
mockRegistry.Expect("RegisterObjectDefinition");
|
||||
mockRegistry.Expect("RegisterAlias");
|
||||
mockRegistry.Expect("RegisterAlias");
|
||||
registry.RegisterObjectDefinition("foo", definition);
|
||||
registry.RegisterAlias("foo", "bar");
|
||||
registry.RegisterAlias("foo", "baz");
|
||||
mocks.ReplayAll();
|
||||
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IObjectDefinition));
|
||||
IObjectDefinition definition = (IObjectDefinition) mockDefinition.Object;
|
||||
|
||||
IObjectDefinitionRegistry registry = (IObjectDefinitionRegistry) mockRegistry.Object;
|
||||
ObjectDefinitionHolder holder
|
||||
= new ObjectDefinitionHolder(definition, "foo", new string[] {"bar", "baz"});
|
||||
ObjectDefinitionHolder holder = new ObjectDefinitionHolder(definition, "foo", new string[] {"bar", "baz"});
|
||||
|
||||
ObjectDefinitionReaderUtils.RegisterObjectDefinition(holder, registry);
|
||||
mockRegistry.Verify();
|
||||
mockDefinition.Verify();
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void RegisterObjectDefinitionWithNullDefinition()
|
||||
{
|
||||
IDynamicMock mockRegistry = new DynamicMock(typeof (IObjectDefinitionRegistry));
|
||||
IObjectDefinitionRegistry registry = (IObjectDefinitionRegistry) mockRegistry.Object;
|
||||
ObjectDefinitionReaderUtils.RegisterObjectDefinition(null, registry);
|
||||
}
|
||||
|
||||
@@ -86,8 +90,6 @@ namespace Spring.Objects.Factory.Support
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void RegisterObjectDefinitionWithNullRegistry()
|
||||
{
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IObjectDefinition));
|
||||
IObjectDefinition definition = (IObjectDefinition) mockDefinition.Object;
|
||||
ObjectDefinitionHolder holder = new ObjectDefinitionHolder(definition, "foo");
|
||||
ObjectDefinitionReaderUtils.RegisterObjectDefinition(holder, null);
|
||||
}
|
||||
@@ -102,15 +104,13 @@ namespace Spring.Objects.Factory.Support
|
||||
[Test]
|
||||
public void RegisterObjectDefinitionWithDuplicateAlias()
|
||||
{
|
||||
IDynamicMock mockRegistry = new DynamicMock(typeof (IObjectDefinitionRegistry));
|
||||
mockRegistry.Expect("RegisterObjectDefinition");
|
||||
registry.RegisterObjectDefinition("foo", definition);
|
||||
|
||||
// we assume that some other object defition has already been associated with this alias...
|
||||
mockRegistry.ExpectAndThrow("RegisterAlias", new ObjectDefinitionStoreException());
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IObjectDefinition));
|
||||
IObjectDefinition definition = (IObjectDefinition) mockDefinition.Object;
|
||||
registry.RegisterAlias(null, null);
|
||||
LastCall.IgnoreArguments().Throw(new ObjectDefinitionStoreException());
|
||||
mocks.ReplayAll();
|
||||
|
||||
IObjectDefinitionRegistry registry = (IObjectDefinitionRegistry) mockRegistry.Object;
|
||||
ObjectDefinitionHolder holder
|
||||
= new ObjectDefinitionHolder(definition, "foo", new string[] { "bing" });
|
||||
|
||||
@@ -123,16 +123,14 @@ namespace Spring.Objects.Factory.Support
|
||||
{
|
||||
// expected...
|
||||
}
|
||||
mockRegistry.Verify();
|
||||
mockDefinition.Verify();
|
||||
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void GenerateObjectNameWithNullDefinition()
|
||||
{
|
||||
IDynamicMock mockRegistry = new DynamicMock(typeof (IObjectDefinitionRegistry));
|
||||
IObjectDefinitionRegistry registry = (IObjectDefinitionRegistry) mockRegistry.Object;
|
||||
ObjectDefinitionReaderUtils.GenerateObjectName(null, registry);
|
||||
}
|
||||
|
||||
@@ -140,8 +138,9 @@ namespace Spring.Objects.Factory.Support
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void GenerateObjectNameWithNullRegistry()
|
||||
{
|
||||
IDynamicMock mockDefinition = new DynamicMock(typeof (IConfigurableObjectDefinition));
|
||||
ObjectDefinitionReaderUtils.GenerateObjectName((IConfigurableObjectDefinition) mockDefinition.Object, null);
|
||||
ObjectDefinitionReaderUtils.GenerateObjectName(
|
||||
(IConfigurableObjectDefinition) mocks.CreateMock(typeof(IConfigurableObjectDefinition)),
|
||||
null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,8 +24,8 @@ using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
using Spring.Pool.Support;
|
||||
using Spring.Threading;
|
||||
|
||||
@@ -86,18 +86,18 @@ namespace Spring.Pool
|
||||
{
|
||||
#region Inner Class : MyFactory (IPoolableObjectFactory implementation)
|
||||
|
||||
private sealed class MyFactory : IPoolableObjectFactory
|
||||
private sealed class MyFactory : IPoolableObjectFactory
|
||||
{
|
||||
public object MakeObject()
|
||||
{
|
||||
return new object();
|
||||
}
|
||||
|
||||
public void DestroyObject(object o)
|
||||
public void DestroyObject(object o)
|
||||
{
|
||||
}
|
||||
|
||||
public bool ValidateObject(object o)
|
||||
public bool ValidateObject(object o)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -106,44 +106,35 @@ namespace Spring.Pool
|
||||
{
|
||||
}
|
||||
|
||||
public void PassivateObject(object o)
|
||||
public void PassivateObject(object o)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private DynamicMock mock;
|
||||
private MockRepository mocks;
|
||||
private IPoolableObjectFactory factory;
|
||||
private SimplePool pool;
|
||||
private bool usingMock;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
mock = new DynamicMock(typeof (IPoolableObjectFactory));
|
||||
mock.ExpectAndReturn("MakeObject", new object());
|
||||
mock.ExpectAndReturn("ValidateObject", true);
|
||||
mock.Strict = false;
|
||||
factory = (IPoolableObjectFactory) mock.Object;
|
||||
usingMock = true;
|
||||
pool = new SimplePool(factory, 1);
|
||||
mocks = new MockRepository();
|
||||
factory = (IPoolableObjectFactory) mocks.DynamicMock(typeof(IPoolableObjectFactory));
|
||||
Expect.Call(factory.MakeObject()).Return(new object()).Repeat.Any();
|
||||
|
||||
mocks.ReplayAll();
|
||||
pool = new SimplePool(factory, 1);
|
||||
|
||||
mocks.BackToRecordAll();
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
if (usingMock)
|
||||
{
|
||||
mock.Verify();
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
[ExpectedException(typeof (ArgumentNullException))]
|
||||
public void InstantiateWithNullPoolableObjectFactory()
|
||||
{
|
||||
usingMock = false;
|
||||
new SimplePool(null, 10);
|
||||
}
|
||||
|
||||
@@ -151,7 +142,6 @@ namespace Spring.Pool
|
||||
[ExpectedException(typeof (ArgumentException))]
|
||||
public void InstantiateSpecifyingZeroPooledItems()
|
||||
{
|
||||
usingMock = false;
|
||||
new SimplePool(factory, 0);
|
||||
}
|
||||
|
||||
@@ -159,58 +149,84 @@ namespace Spring.Pool
|
||||
[ExpectedException(typeof (ArgumentException))]
|
||||
public void InstantiateSpecifyingNegativePooledItems()
|
||||
{
|
||||
usingMock = false;
|
||||
new SimplePool(factory, -10000);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ActivateOnObjectOnBorrow()
|
||||
{
|
||||
mock.Expect("ActivateObject");
|
||||
Expect.Call(factory.ValidateObject(null)).IgnoreArguments().Return(true).Repeat.Any();
|
||||
factory.ActivateObject(null);
|
||||
LastCall.IgnoreArguments();
|
||||
mocks.ReplayAll();
|
||||
|
||||
Assert.AreEqual(0, pool.NumActive, "active wrong");
|
||||
Assert.AreEqual(1, pool.NumIdle, "idle wrong");
|
||||
pool.BorrowObject();
|
||||
Assert.AreEqual(1, pool.NumActive, "active wrong");
|
||||
Assert.AreEqual(0, pool.NumIdle, "idle wrong");
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
// TODO fix test!!!
|
||||
[Test]
|
||||
[Ignore("Cannot figure out why this is failing?")]
|
||||
public void PassivateBusyObjectsBeforeClose()
|
||||
{
|
||||
object o = pool.BorrowObject();
|
||||
mock.Expect("PassivateObject", o);
|
||||
pool.Close();
|
||||
}
|
||||
Expect.Call(factory.ValidateObject(null)).IgnoreArguments().Return(true).Repeat.Any();
|
||||
object o = pool.BorrowObject();
|
||||
factory.PassivateObject(o);
|
||||
mocks.ReplayAll();
|
||||
|
||||
pool.Close();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test, ExpectedException(typeof (PoolException))]
|
||||
public void NoMoreUsableAfterClose()
|
||||
{
|
||||
PassivateBusyObjectsBeforeClose();
|
||||
pool.BorrowObject();
|
||||
}
|
||||
object o = pool.BorrowObject();
|
||||
factory.PassivateObject(o);
|
||||
mocks.ReplayAll();
|
||||
|
||||
pool.Close();
|
||||
pool.BorrowObject();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test, ExpectedException(typeof (PoolException))]
|
||||
public void ThrowsExceptionWhenOutOfItemsBecauseFailedValidation()
|
||||
{
|
||||
mock = new DynamicMock(typeof (IPoolableObjectFactory));
|
||||
mock.ExpectAndReturn("MakeObject", new object());
|
||||
mock.ExpectAndReturn("ValidateObject", false);
|
||||
factory = (IPoolableObjectFactory) mock.Object;
|
||||
object o = new object();
|
||||
Expect.Call(factory.MakeObject()).Return(o);
|
||||
Expect.Call(factory.ValidateObject(o)).Return(false);
|
||||
mocks.ReplayAll();
|
||||
|
||||
pool = new SimplePool(factory, 1);
|
||||
pool.BorrowObject();
|
||||
}
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PassivateObjectOnReturn()
|
||||
{
|
||||
mock.Expect("PassivateObject");
|
||||
Expect.Call(factory.ValidateObject(null)).IgnoreArguments().Return(true).Repeat.Any();
|
||||
factory.PassivateObject(null);
|
||||
LastCall.IgnoreArguments();
|
||||
mocks.ReplayAll();
|
||||
|
||||
pool.ReturnObject(pool.BorrowObject());
|
||||
}
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void DestroyObjectOnClose()
|
||||
{
|
||||
mock.Expect("DestroyObject");
|
||||
Expect.Call(factory.ValidateObject(null)).IgnoreArguments().Return(true).Repeat.Any();
|
||||
factory.DestroyObject(null);
|
||||
LastCall.IgnoreArguments();
|
||||
mocks.ReplayAll();
|
||||
|
||||
pool.BorrowObject();
|
||||
pool.Close();
|
||||
}
|
||||
@@ -218,7 +234,6 @@ namespace Spring.Pool
|
||||
[Test]
|
||||
public void WaitOnBorrowWhenExausted()
|
||||
{
|
||||
usingMock = false;
|
||||
int n = 100;
|
||||
object[] objects = new object[n];
|
||||
pool = new SimplePool(new MyFactory(), n);
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
using System.Threading;
|
||||
using DotNetMock.Dynamic;
|
||||
using NUnit.Framework;
|
||||
using Rhino.Mocks;
|
||||
|
||||
namespace Spring.Threading
|
||||
{
|
||||
[TestFixture]
|
||||
public class SyncHolderTest
|
||||
{
|
||||
DynamicMock mock;
|
||||
private MockRepository mocks;
|
||||
ISync sync;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp ()
|
||||
{
|
||||
mock = new DynamicMock(typeof(ISync));
|
||||
sync = (ISync) mock.Object;
|
||||
mocks = new MockRepository();
|
||||
sync = (ISync) mocks.CreateMock(typeof(ISync));
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown ()
|
||||
{
|
||||
mock.Verify();
|
||||
mocks.VerifyAll();
|
||||
}
|
||||
|
||||
class MySemaphore : Semaphore
|
||||
@@ -32,6 +32,9 @@ namespace Spring.Threading
|
||||
[Test]
|
||||
public void CanBeUsedWithTheUsingCSharpIdiomToAttemptOnAnISync ()
|
||||
{
|
||||
// no expectations
|
||||
mocks.ReplayAll();
|
||||
|
||||
MySemaphore sync = new MySemaphore(1);
|
||||
using (new SyncHolder(sync, 100))
|
||||
{
|
||||
@@ -57,8 +60,10 @@ namespace Spring.Threading
|
||||
[ExpectedException(typeof(ThreadStateException))]
|
||||
public void CanBeUsedWithTheUsingCSharpIdiomToAcquireAnIsync()
|
||||
{
|
||||
mock.Expect("Acquire");
|
||||
mock.Expect("Release");
|
||||
sync.Acquire();
|
||||
sync.Release();
|
||||
mocks.ReplayAll();
|
||||
|
||||
using (new SyncHolder(sync))
|
||||
{
|
||||
throw new ThreadStateException();
|
||||
|
||||
Reference in New Issue
Block a user