Changed failing DotNetMock tests to use Rhino, one test needs checkup to get it out from ignore

This commit is contained in:
lahma
2009-07-23 21:49:09 +00:00
parent b61a475ff2
commit bb05bc85e6
9 changed files with 329 additions and 259 deletions

View File

@@ -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();
}
}
}

View File

@@ -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();
}
}
}

View File

@@ -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";

View File

@@ -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]

View File

@@ -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"),

View File

@@ -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();
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);

View File

@@ -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();