\r
using nwind;\r
\r
+// test ns \r
#if MYSQL\r
-namespace Test_NUnit_MySql\r
+ namespace Test_NUnit_MySql\r
+#elif ORACLE && ODP\r
+ namespace Test_NUnit_OracleODP\r
#elif ORACLE\r
-#if ODP\r
- namespace Test_NUnit_OracleODP\r
-#else\r
- namespace Test_NUnit_Oracle\r
-#endif\r
+ namespace Test_NUnit_Oracle\r
#elif POSTGRES\r
namespace Test_NUnit_PostgreSql\r
#elif SQLITE\r
namespace Test_NUnit_Sqlite\r
#elif INGRES\r
namespace Test_NUnit_Ingres\r
+#elif MSSQL && L2SQL\r
+ namespace Test_NUnit_MsSql_Strict\r
#elif MSSQL\r
-#if MONO_STRICT\r
-namespace Test_NUnit_MsSql_Strict\r
-#else\r
-namespace Test_NUnit_MsSql\r
-#endif\r
+ namespace Test_NUnit_MsSql\r
#elif FIREBIRD\r
namespace Test_NUnit_Firebird\r
-#else\r
- #error unknown target\r
#endif\r
{\r
[TestFixture]\r
{\r
var db = CreateDB();\r
var customer = db.Customers.First();\r
- Assert.Greater(customer.Orders.Count, 0);\r
+ AssertHelper.Greater(customer.Orders.Count, 0);\r
}\r
\r
+#if !DEBUG && (SQLITE || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void EntitySetEnumerationProjection()\r
{\r
var db = CreateDB();\r
var results = (from c in db.Customers select c.Orders).ToList();\r
\r
- Assert.Greater(results.Count, 0);\r
+ AssertHelper.Greater(results.Count, 0);\r
}\r
\r
[Test]\r
var db = CreateDB();\r
var customer = db.Customers.First();\r
\r
- Assert.Greater(customer.Orders.Count, 0, "#1");\r
+ AssertHelper.Greater(customer.Orders.Count, 0, "#1");\r
Assert.IsTrue(customer.Orders.HasLoadedOrAssignedValues, "#2");\r
customer.Orders.SetSource(System.Linq.Enumerable.Empty<Order>());\r
}\r
int ordersCount = (from cust in db.Customers\r
select cust.Orders.Count).First();\r
\r
- Assert.Greater(ordersCount, 0);\r
+ AssertHelper.Greater(ordersCount, 0);\r
\r
var customer2 = db.Customers.First();\r
customer2.Orders.SetSource(System.Linq.Enumerable.Empty<Order>());\r
}\r
\r
\r
+#if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void Refresh01()\r
{\r
var c = db.Customers.First();\r
\r
int beforeCount = c.Orders.Count;\r
- Assert.Greater(beforeCount, 0);\r
+ AssertHelper.Greater(beforeCount, 0);\r
c.Orders.Clear();\r
Assert.AreEqual(c.Orders.Count, 0);\r
c.Orders.AddRange(db.Orders);\r
- Assert.Greater(c.Orders.Count, beforeCount);\r
+ AssertHelper.Greater(c.Orders.Count, beforeCount);\r
db.Refresh(RefreshMode.OverwriteCurrentValues, c.Orders);\r
\r
Assert.AreEqual(c.Orders.Count, beforeCount);\r
}\r
\r
+#if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void Refresh02()\r
{\r
var c = db.Customers.First();\r
\r
int beforeCount = c.Orders.Count;\r
- Assert.Greater(beforeCount, 0);\r
+ AssertHelper.Greater(beforeCount, 0);\r
c.Orders.Clear();\r
Assert.AreEqual(c.Orders.Count, 0);\r
c.Orders.AddRange(db.Orders);\r
\r
int middleCount = c.Orders.Count;\r
- Assert.Greater(c.Orders.Count, beforeCount);\r
+ AssertHelper.Greater(c.Orders.Count, beforeCount);\r
\r
db.Refresh(RefreshMode.KeepCurrentValues, c.Orders);\r
Assert.AreEqual(c.Orders.Count, middleCount);\r
}\r
\r
\r
+#if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void Refresh03()\r
{\r
Assert.AreNotEqual(order.CustomerID, newcustomerId);\r
}\r
\r
+#if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void Refresh04()\r
{\r
public void ListChangedEvent()\r
{\r
var db = CreateDB();\r
- var customer = db.Customers.First();\r
+ var customer = db.Customers.Where(c => c.Orders.Count > 0).First();\r
+ AssertHelper.Greater(customer.Orders.Count, 0);\r
bool ok;\r
- customer.Orders.ListChanged += delegate { ok = true; };\r
+ System.ComponentModel.ListChangedEventArgs args = null;\r
+ customer.Orders.ListChanged += delegate(object sender, System.ComponentModel.ListChangedEventArgs a) \r
+ { \r
+ ok = true; \r
+ args = a; \r
+ };\r
\r
ok = false;\r
+ args = null;\r
customer.Orders.Remove(customer.Orders.First());\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.ItemDeleted, args.ListChangedType);\r
+ Assert.AreEqual(0, args.NewIndex);\r
+ Assert.AreEqual(-1, args.OldIndex);\r
\r
ok = false;\r
+ args = null;\r
customer.Orders.Assign(Enumerable.Empty<Order>());\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.Reset, args.ListChangedType);\r
+ Assert.AreEqual(0, args.NewIndex);\r
+ Assert.AreEqual(-1, args.OldIndex);\r
\r
ok = false;\r
- customer.Orders.Add(db.Orders.First(o => !customer.Orders.Contains(o)));\r
+ args = null;\r
+ customer.Orders.Add(db.Orders.First());\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.ItemAdded, args.ListChangedType);\r
+ Assert.AreEqual(0, args.NewIndex);\r
+ Assert.AreEqual(-1, args.OldIndex);\r
\r
ok = false;\r
+ args = null;\r
customer.Orders.Clear();\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.Reset, args.ListChangedType);\r
+ Assert.AreEqual(0, args.NewIndex);\r
+ Assert.AreEqual(-1, args.OldIndex);\r
\r
ok = false;\r
+ args = null;\r
customer.Orders.Insert(0, new Order());\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.ItemAdded, args.ListChangedType);\r
+ Assert.AreEqual(0, args.NewIndex);\r
+ Assert.AreEqual(-1, args.OldIndex);\r
\r
ok = false;\r
+ args = null;\r
customer.Orders.RemoveAt(0);\r
Assert.IsTrue(ok);\r
+ Assert.AreEqual(System.ComponentModel.ListChangedType.ItemDeleted, args.ListChangedType);\r
+ Assert.AreEqual(args.NewIndex, 0);\r
+ Assert.AreEqual(args.OldIndex, -1);\r
}\r
\r
[Test]\r
Assert.IsFalse(customer.Orders.IsDeferred);\r
}\r
\r
+#if !DEBUG && (SQLITE || POSTGRES || (MSSQL && !L2SQL))\r
+ [Explicit]\r
+#endif\r
[Test]\r
public void DeferedExecutionAndLoadWith()\r
{\r
{\r
var db = CreateDB();\r
var customer = db.Customers.First();\r
- Assert.AreEqual("jacques", customer.ContactName, "#1");\r
int beforeCount = customer.Orders.Count;\r
- Assert.AreEqual(1, beforeCount, "#2");\r
var order = new Order();\r
customer.Orders.Add(order);\r
Assert.AreEqual(beforeCount + 1, customer.Orders.Count, "#3");\r
{\r
var db = CreateDB();\r
var customer = db.Customers.First();\r
- Assert.AreEqual("jacques", customer.ContactName, "#1");\r
- int beforeCount = customer.Orders.Count;\r
- Assert.AreEqual(1, beforeCount, "#2");\r
var order = new Order();\r
((IList)customer.Orders).Add(order);\r
((IList)customer.Orders).Add(order); // raises ArgumentOutOfRangeException for duplicate\r
{\r
var db = CreateDB();\r
var customer = db.Customers.First();\r
+ Assert.IsTrue(customer.Orders.IsDeferred);\r
int beforeCount = customer.Orders.Count;\r
+ Assert.IsFalse(customer.Orders.IsDeferred);\r
\r
if (beforeCount == 0)\r
Assert.Ignore();\r
\r
- customer.Orders.Remove(customer.Orders.First());\r
+ Assert.IsFalse(customer.Orders.Remove(null));\r
+ Assert.AreEqual(beforeCount, customer.Orders.Count);\r
+\r
+ Assert.IsTrue(customer.Orders.Remove(customer.Orders.First()));\r
Assert.AreEqual(customer.Orders.Count, beforeCount - 1);\r
}\r
\r