From a213bc4216e9a8477f8c2a7f553a4c3952b74168 Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Mon, 13 Feb 2012 10:36:46 +0200 Subject: [PATCH] Fix issues in Spring.Data.Tests caused by new version of Rhino.Mocks, also set build to happen in .NET 3.5 for Spring.Data tests (allows lambdas) --- .../Spring.Aop.Tests/Spring.Aop.Tests.build | 2 +- .../Data/Objects/AbstractAdoQueryTests.cs | 19 +++----- .../Data/Objects/AdoQueryTests.cs | 44 +++++++------------ .../Data/Objects/StoredProcedureTests.cs | 19 +++----- .../Spring.Data.Tests/Spring.Data.Tests.build | 8 +++- .../Spring.Scheduling.Quartz.Tests.build | 2 +- .../Spring.Scheduling.Quartz20.Tests.build | 2 +- 7 files changed, 41 insertions(+), 55 deletions(-) diff --git a/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build b/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build index cc162c0b..53881f92 100644 --- a/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build +++ b/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build @@ -13,7 +13,7 @@ - + public abstract class AbstractAdoQueryTests { - - protected MockRepository mocks; protected IDbProvider provider; protected IDbCommand command; - public void SetUpMocks() { - mocks = new MockRepository(); - provider = (IDbProvider)mocks.DynamicMock(typeof(IDbProvider)); + provider = MockRepository.GenerateMock(); + IDbConnection connection = MockRepository.GenerateMock(); - IDbConnection connection = (IDbConnection)mocks.DynamicMock(typeof(IDbConnection)); - - Expect.Call(provider.CreateConnection()).Return(connection); + provider.Stub(x => x.CreateConnection()).Return(connection).Repeat.Once(); // Creating a query (setting DbProvider property) // will call new DbParameters(IDbProvider), which is a real pain to mock. // to store the declared parameters. - command = (IDbCommand)mocks.DynamicMock(typeof(IDbCommand)); + command = MockRepository.GenerateMock(); //This IDbCommand is used as a container for the underlying parameter collection. - Expect.Call(provider.CreateCommand()).Return(command); + provider.Stub(x => x.CreateCommand()).Return(command).Repeat.Once(); //Create a real instance of IDbParameters to stored the declared parameters IDbProvider realDbProvider = DbProviderFactory.GetDbProvider("System.Data.SqlClient"); IDbParameters dbParameters = new DbParameters(realDbProvider); //Pass real instance into mock instance. - Expect.Call(command.Parameters).Return(dbParameters.DataParameterCollection); - Expect.Call(provider.CreateCommand()).Return(command); + command.Stub(x => x.Parameters).Return(dbParameters.DataParameterCollection).Repeat.Once(); + provider.Stub(x => x.CreateCommand()).Return(command).Repeat.Once(); // done with init of DbParameters mock/stubbing } diff --git a/test/Spring/Spring.Data.Tests/Data/Objects/AdoQueryTests.cs b/test/Spring/Spring.Data.Tests/Data/Objects/AdoQueryTests.cs index 5118aff3..4b89e4b1 100644 --- a/test/Spring/Spring.Data.Tests/Data/Objects/AdoQueryTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Objects/AdoQueryTests.cs @@ -17,6 +17,7 @@ */ #endregion + #region License /* @@ -42,8 +43,11 @@ using System.Collections; using System.Data; using System.Data.SqlClient; + using NUnit.Framework; + using Rhino.Mocks; + using Spring.Dao; using Spring.Data.Common; @@ -58,31 +62,26 @@ namespace Spring.Data.Objects [TestFixture] public class AdoQueryTests : AbstractAdoQueryTests { - private static string SELECT_ID_WHERE = "select id from custmr"; private static string[] COLUMN_NAMES = new string[] {"id", "forename"}; - private static DbType[] COLUMN_TYPES = new DbType[] {DbType.Int32, DbType.String}; + private static DbType[] COLUMN_TYPES = new DbType[] {DbType.Int32, DbType.String}; [SetUp] public void Setup() { SetUpMocks(); - - } - [Test] public void MappingAdoQueryWithContextWithoutParams() { - IDataReader reader = (IDataReader)mocks.DynamicMock(typeof(IDataReader)); - Expect.Call(reader.Read()).Return(true); - Expect.Call(reader.GetInt32(0)).Return(1); - Expect.Call(reader.Read()).Return(false); + IDataReader reader = MockRepository.GenerateMock(); + reader.Stub(x => x.Read()).Return(true).Repeat.Once(); + reader.Stub(x => x.GetInt32(0)).Return(1).Repeat.Once(); + reader.Stub(x => x.Read()).Return(false).Repeat.Once(); - Expect.Call(command.ExecuteReader()).Return(reader); + command.Stub(x => x.ExecuteReader()).Return(reader); - mocks.ReplayAll(); IntMappingQueryWithContext queryWithNoContext = new IntMappingQueryWithContext(provider); queryWithNoContext.Compile(); IList list = queryWithNoContext.QueryByNamedParam(null, null); @@ -91,23 +90,19 @@ namespace Spring.Data.Objects { Assert.AreEqual(1, count); } - - mocks.VerifyAll(); } - + [Test] - [ExpectedException(typeof(InvalidDataAccessApiUsageException))] + [ExpectedException(typeof (InvalidDataAccessApiUsageException))] public void QueryWithoutEnoughParams() { - SqlParameter sqlParameter1 = new SqlParameter(); - Expect.Call(command.CreateParameter()).Return(sqlParameter1); - Expect.Call(provider.CreateParameterNameForCollection(COLUMN_NAMES[0])).Return("@" + COLUMN_NAMES[0]); + SqlParameter sqlParameter1 = new SqlParameter(); + command.Stub(x => x.CreateParameter()).Return(sqlParameter1).Repeat.Once(); + provider.Stub(x => x.CreateParameterNameForCollection(COLUMN_NAMES[0])).Return("@" + COLUMN_NAMES[0]).Repeat.Once(); SqlParameter sqlParameter2 = new SqlParameter(); - Expect.Call(command.CreateParameter()).Return(sqlParameter2); - Expect.Call(provider.CreateParameterNameForCollection(COLUMN_NAMES[1])).Return("@" + COLUMN_NAMES[1]); - - mocks.ReplayAll(); + command.Stub(x => x.CreateParameter()).Return(sqlParameter2); + provider.Stub(x => x.CreateParameterNameForCollection(COLUMN_NAMES[1])).Return("@" + COLUMN_NAMES[1]); IntMappingAdoQuery query = new IntMappingAdoQuery(); query.DbProvider = provider; @@ -116,11 +111,8 @@ namespace Spring.Data.Objects query.DeclaredParameters.Add(COLUMN_NAMES[1], COLUMN_TYPES[1]); query.Compile(); query.Query(); - - mocks.VerifyAll(); } - public class IntMappingQueryWithContext : MappingAdoQueryWithContext { private static string sql = "select id from custmr"; @@ -131,7 +123,6 @@ namespace Spring.Data.Objects CommandType = CommandType.Text; } - protected override object MapRow(IDataReader reader, int rowNum, IDictionary inParams, IDictionary callingContext) { @@ -148,6 +139,5 @@ namespace Spring.Data.Objects return reader.GetInt32(0); } } - } } \ No newline at end of file diff --git a/test/Spring/Spring.Data.Tests/Data/Objects/StoredProcedureTests.cs b/test/Spring/Spring.Data.Tests/Data/Objects/StoredProcedureTests.cs index 4502427a..1a8f4763 100644 --- a/test/Spring/Spring.Data.Tests/Data/Objects/StoredProcedureTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Objects/StoredProcedureTests.cs @@ -17,6 +17,7 @@ */ #endregion + #region License /* @@ -42,8 +43,11 @@ using System; using System.Data; using System.Data.SqlClient; + using NUnit.Framework; + using Rhino.Mocks; + using Spring.Data.Common; #endregion @@ -67,28 +71,19 @@ namespace Spring.Data.Objects public void NullArg() { SqlParameter sqlParameter1 = new SqlParameter(); - Expect.Call(command.CreateParameter()).Return(sqlParameter1); - Expect.Call(provider.CreateParameterNameForCollection("ptest")).Return("@ptest"); + command.Stub(x => x.CreateParameter()).Return(sqlParameter1); + provider.Stub(x => x.CreateParameterNameForCollection("ptest")).Return("@ptest"); //Create a real instance of IDbParameters to store the executable parameters //IDbProvider realDbProvider = DbProviderFactory.GetDbProvider("System.Data.SqlClient"); //IDbParameters dbParameters = new DbParameters(realDbProvider); IDataParameterCollection dbParamCollection = new SqlCommand().Parameters; - Expect.Call(command.Parameters).Return(dbParamCollection); - //provide the same instance to another call to extract output params - Expect.Call(command.Parameters).Return(dbParamCollection); + command.Stub(x => x.Parameters).Return(dbParamCollection).Repeat.Twice(); - - mocks.ReplayAll(); NullArg na = new NullArg(provider); na.Execute(null); - mocks.VerifyAll(); } - - - - } internal class NullArg : StoredProcedure diff --git a/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build b/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build index 9a9c4f42..c4b12bd6 100644 --- a/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build +++ b/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build @@ -11,6 +11,9 @@ --> + + + - + + + diff --git a/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build b/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build index b7747556..2376a32c 100644 --- a/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build +++ b/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build @@ -13,7 +13,7 @@ - + - +