using System;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using Spring.Dao;
using Spring.Objects;
using Spring.Testing.NUnit;
namespace Spring.Data{
/// <summary>
/// Test AdoTemplate based DAO object.
/// </summary>
[TestFixture]
public class AdoDaoTests : AbstractTransactionalSpringContextTests
{
private TestObjectDao dao;
public TestObjectDao TestObjectDao
{
get { return dao; }
set { dao = value; }
}
[Test]
public void ExerciseDao()
{
Assert.AreEqual(0, dao.GetCount());
dao.Create("John", 44);
Assert.AreEqual(1, dao.GetCountByDelegate());
dao.Create("Mary", 44);
dao.Create("Steve", 44);
dao.Create("George", 33);
Assert.AreEqual(4, dao.GetCount(), "GetCount()");
Assert.AreEqual(3, dao.GetCount(33), "GetCount(33)");
Assert.AreEqual(3, dao.GetCountByAltMethod(33), "GetCountByAltMethod(33)");
Assert.AreEqual(3, dao.GetCountByCommandSetter(33), "GetCountByCommandSetter(33)");
Assert.AreEqual(1, dao.GetCount(32, "George"), "GetCount(32, 'George')");
TestObject to = dao.FindByName("George");
Assert.IsNotNull(to);
Assert.AreEqual("George", to.Name);
Assert.AreEqual(33, to.Age);
to.Age = 34;
dao.Update(to);
TestObject to2 = dao.FindByName("George");
Assert.AreEqual(34, to2.Age);
dao.Delete("George");
TestObject to3 = dao.FindByName("George");
Assert.IsNull(to3);
}
[Ignore]
[Test]
public void SimpleCreate()
{
IApplicationContext ctx =
new XmlApplicationContext("assembly://Spring.Data.Integration.Tests/Spring.Data/nativeAdoTests.xml");
Assert.IsNotNull(ctx);
ITestObjectDao dao = (ITestObjectDao)ctx["testObjectDao"];
Assert.IsNotNull(dao);
dao.Create("John", 44);
}
[Ignore]
[Test]
public void SimpleDao()
{
IApplicationContext ctx =
new XmlApplicationContext("assembly://Spring.Data.Integration.Tests/Spring.Data/templateTests.xml");
Assert.IsNotNull(ctx);
TestObjectDao dao = (TestObjectDao)ctx["testObjectDao"];
Assert.IsNotNull(dao);
Assert.AreEqual(10, dao.GetCount());
Assert.AreEqual(3, dao.GetCount(33));
Assert.AreEqual(3, dao.GetCountByAltMethod(33));
Assert.AreEqual(3, dao.GetCountByCommandSetter(33));
Assert.AreEqual(2, dao.GetCount(33,"George"));
}
[Ignore]
[Test]
public void SimpleDao2()
{
IApplicationContext ctx =
new XmlApplicationContext("assembly://Spring.Data.Integration.Tests/Spring.Data/templateTests.xml");
Assert.IsNotNull(ctx);
TestObjectDao dao = (TestObjectDao)ctx["testObjectDao"];
Assert.IsNotNull(dao);
Assert.AreEqual(1, dao.GetCountByDelegate());
}
[Ignore]
[Test]
public void DaoOperations()
{
IApplicationContext ctx =
new XmlApplicationContext("assembly://Spring.Data.Integration.Tests/Spring.Data/templateTests.xml");
Assert.IsNotNull(ctx);
TestObjectDao dao = (TestObjectDao)ctx["testObjectDao"];
dao.Create("George", 33);
TestObject to = dao.FindByName("George");
Assert.IsNotNull(to);
Assert.AreEqual("George", to.Name);
Assert.AreEqual(33, to.Age);
to.Age=34;
dao.Update(to);
TestObject to2 = dao.FindByName("George");
Assert.AreEqual(34, to2.Age);
dao.Delete("George");
TestObject to3 = dao.FindByName("George");
Assert.IsNull(to3);
}
#region Overrides of AbstractDependencyInjectionSpringContextTests
/// <summary>
/// Subclasses must implement this property to return the locations of their
/// config files. A plain path will be treated as a file system location.
/// </summary>
/// <value>An array of config locations</value>
protected override string[] ConfigLocations
{
get
{
return new string[] { "assembly://Spring.Data.Integration.Tests/Spring.Data/templateTests.xml" };
}
}
#endregion
}
}
|