using System; using System.Collections; using System.Configuration; using NUnit.Framework; using IBatisNet.DataMapper.Test; using IBatisNet.DataMapper.Test.Domain; namespace IBatisNet.DataMapper.Test.NUnit.SqlMapTests { /// /// Summary description for DynamicTest. /// [TestFixture] public class DynamicTest : BaseTest { #region SetUp & TearDown /// /// SetUp /// [SetUp] public void Init() { InitScript( sqlMap.DataSource, ScriptDirectory+"account-init.sql" ); InitScript( sqlMap.DataSource, ScriptDirectory+"account-procedure.sql", false ); InitScript( sqlMap.DataSource, ScriptDirectory+"order-init.sql" ); InitScript( sqlMap.DataSource, ScriptDirectory+"line-item-init.sql" ); } /// /// TearDown /// [TearDown] public void Dispose() { /* ... */ } #endregion #region Dynamic tests /// /// Test Dynamic Sql On Column Selection /// JIRA IBATISNET-114 /// [Test] public void TestDynamicSqlOnColumnSelection() { Account paramAccount = new Account(); Account resultAccount = new Account(); IList list = null; paramAccount.LastName = "Dalton"; list = sqlMap.QueryForList("DynamicSqlOnColumnSelection", paramAccount); resultAccount = (Account)list[0]; AssertAccount1( resultAccount ); Assert.AreEqual(5, list.Count); paramAccount.LastName = "Bayon"; list = sqlMap.QueryForList("DynamicSqlOnColumnSelection", paramAccount); resultAccount = (Account)list[0]; Assert.IsNull(resultAccount.FirstName); Assert.IsNull(resultAccount.LastName); Assert.AreEqual(5, list.Count); } /// /// Test IsNotEmpty True /// [Test] public void TestIsNotEmptyTrue() { IList list = sqlMap.QueryForList("DynamicIsNotEmpty", "Joe"); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsNotEmpty False /// [Test] public void TestIsNotEmptyFalse() { IList list = sqlMap.QueryForList("DynamicIsNotEmpty", ""); Assert.AreEqual(5, list.Count); } /// /// Test IsEqual true /// [Test] public void TestIsEqualTrue() { IList list = sqlMap.QueryForList("DynamicIsEqual", "Joe"); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsEqual False /// [Test] public void TestIsEqualFalse() { IList list = sqlMap.QueryForList("DynamicIsEqual", "BLAH!"); Assert.AreEqual(5, list.Count); } /// /// Test IsGreater true /// [Test] public void TestIsGreaterTrue() { IList list = sqlMap.QueryForList("DynamicIsGreater", 5); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsGreater false /// [Test] public void TestIsGreaterFalse() { IList list = sqlMap.QueryForList("DynamicIsGreater", 1); Assert.AreEqual(5, list.Count); } /// /// Test IsGreaterEqual true /// [Test] public void TestIsGreaterEqualTrue() { IList list = sqlMap.QueryForList("DynamicIsGreaterEqual", 3); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsGreaterEqual false /// [Test] public void TestIsGreaterEqualFalse() { IList list = sqlMap.QueryForList("DynamicIsGreaterEqual", 1); Assert.AreEqual(5, list.Count); } /// /// Test IsLess true /// [Test] public void TestIsLessTrue() { IList list = sqlMap.QueryForList("DynamicIsLess", 1); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsLess false /// [Test] public void TestIsLessFalse() { IList list = sqlMap.QueryForList("DynamicIsLess", 5); Assert.AreEqual(5, list.Count); } /// /// Test IsLessEqual true /// [Test] public void TestIsLessEqualTrue() { IList list = sqlMap.QueryForList("DynamicIsLessEqual", 3); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsLessEqual false /// [Test] public void TestIsLessEqualFalse() { IList list = sqlMap.QueryForList("DynamicIsLessEqual", 5); Assert.AreEqual(5, list.Count); } /// /// Test IsNotNull true /// [Test] public void TestIsNotNullTrue() { IList list = sqlMap.QueryForList("DynamicIsNotNull", ""); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsNotNull false /// [Test] public void TestIsNotNullFalse() { IList list = sqlMap.QueryForList("DynamicIsNotNull", null); Assert.AreEqual(5, list.Count); } /// /// Test IsPropertyAvailable true /// [Test] public void TestIsPropertyAvailableTrue() { Account account = new Account(); account.Id = 1; IList list = sqlMap.QueryForList("DynamicIsPropertyAvailable", account); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsPropertyAvailable false /// [Test] public void TestIsPropertyAvailableFalse() { string parameter = "1"; IList list = sqlMap.QueryForList("DynamicIsPropertyAvailable", parameter); Assert.AreEqual(5, list.Count); } /// /// Test IsParameterPresent true /// [Test] public void TestIsParameterPresentTrue() { IList list = sqlMap.QueryForList("DynamicIsParameterPresent", 1); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test IsParameterPresent false /// [Test] public void TestIsParameterPresentFalse() { IList list = sqlMap.QueryForList("DynamicIsParameterPresent", null); Assert.AreEqual(5, list.Count); } /// /// Test Iterate /// [Test] public void TestIterate() { IList parameters = new ArrayList(); parameters.Add(1); parameters.Add(2); parameters.Add(3); IList list = sqlMap.QueryForList("DynamicIterate", parameters); AssertAccount1((Account) list[0]); Assert.AreEqual(3, list.Count); } /// /// Test Iterate 2 /// [Test] public void TestIterate2() { Account account = new Account(); account.Ids = new int[3] { 1, 2, 3}; IList list = sqlMap.QueryForList("DynamicIterate2", account); AssertAccount1((Account) list[0]); Assert.AreEqual(3, list.Count); } /// /// Test Empty Parameter Object /// [Test] public void TestEmptyParameterObject() { Account account = new Account(); account.Id = -1; IList list = sqlMap.QueryForList("DynamicQueryByExample", account); AssertAccount1((Account) list[0]); Assert.AreEqual(5, list.Count); } /// /// Test Dynamic With Extend /// [Test] public void TestDynamicWithExtend() { Account account = new Account(); account.Id = -1; IList list = sqlMap.QueryForList("DynamicWithExtend", account); AssertAccount1((Account) list[0]); Assert.AreEqual(5, list.Count); } /// /// Test Multiple Iterate /// [Test] public void TestMultiIterate() { IList parameters = new ArrayList(); parameters.Add(1); parameters.Add(2); parameters.Add(3); IList list = sqlMap.QueryForList("MultiDynamicIterate", parameters); AssertAccount1((Account) list[0]); Assert.AreEqual(3, list.Count); } /// /// Test Array Property Iterate /// [Test] public void TestArrayPropertyIterate() { Account account = new Account(); account.Ids = new int[3] { 1, 2, 3}; IList list = sqlMap.QueryForList("DynamicQueryByExample", account); AssertAccount1((Account) list[0]); Assert.AreEqual(3, list.Count); } /// /// Test Complete Statement Substitution /// [Test] [Ignore("No longer supported.")] public void TestCompleteStatementSubst() { string statement = "select" + " Account_ID as Id," + " Account_FirstName as FirstName," + " Account_LastName as LastName," + " Account_Email as EmailAddress" + " from Accounts" + " where Account_ID = #id#"; int id = 1; Hashtable parameters = new Hashtable(); parameters.Add("id", id); parameters.Add("statement", statement); IList list = sqlMap.QueryForList("DynamicSubst", parameters); AssertAccount1((Account) list[0]); Assert.AreEqual(1, list.Count); } /// /// Test Query By Example /// [Test] public void TestQueryByExample() { Account account; account = new Account(); account.Id = 1; account = sqlMap.QueryForObject("DynamicQueryByExample", account) as Account; AssertAccount1(account); account = new Account(); account.FirstName = "Joe"; account = sqlMap.QueryForObject("DynamicQueryByExample", account) as Account; AssertAccount1(account); account = new Account(); account.LastName = "Dalton"; account = sqlMap.QueryForObject("DynamicQueryByExample", account) as Account; AssertAccount1(account); account = new Account(); account.EmailAddress = "Joe.Dalton@somewhere.com"; account = (Account) sqlMap.QueryForObject("DynamicQueryByExample", account) as Account; AssertAccount1(account); account = new Account(); account.Id = 1; account.FirstName = "Joe"; account.LastName = "Dalton"; account.EmailAddress = "Joe.Dalton@somewhere.com"; account = sqlMap.QueryForObject("DynamicQueryByExample", account) as Account; AssertAccount1(account); } #endregion } }