Mercurial > pub > bltoolkit
diff UnitTests/Linq/BatchTest.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/UnitTests/Linq/BatchTest.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,87 @@ +using System; +using BLToolkit.Data; +using BLToolkit.Data.Linq; +using BLToolkit.DataAccess; +using BLToolkit.Mapping; + +using Data.Linq; +using Data.Linq.Model; + +using NUnit.Framework; + +namespace Update +{ + [TestFixture] + public class BatchTest : TestBase + { + [Test] + public void Transaction([DataContexts(ExcludeLinqService = true)] string context) + { + using (var db = new TestDbManager(context)) + { + var list = new[] + { + new Parent { ParentID = 1111, Value1 = 1111 }, + new Parent { ParentID = 2111, Value1 = 2111 }, + new Parent { ParentID = 3111, Value1 = 3111 }, + new Parent { ParentID = 4111, Value1 = 4111 }, + }; + + foreach (var parent in list) + db.Parent.Delete(p => p.ParentID == parent.ParentID); + + db.BeginTransaction(); + db.InsertBatch(list); + db.CommitTransaction(); + + foreach (var parent in list) + db.Parent.Delete(p => p.ParentID == parent.ParentID); + } + } + + [Test] + public void NoTransaction([DataContexts(ExcludeLinqService=true)] string context) + { + using (var db = new TestDbManager(context)) + { + var list = new[] + { + new Parent { ParentID = 1111, Value1 = 1111 }, + new Parent { ParentID = 2111, Value1 = 2111 }, + new Parent { ParentID = 3111, Value1 = 3111 }, + new Parent { ParentID = 4111, Value1 = 4111 }, + }; + + foreach (var parent in list) + db.Parent.Delete(p => p.ParentID == parent.ParentID); + + db.InsertBatch(list); + + foreach (var parent in list) + db.Parent.Delete(p => p.ParentID == parent.ParentID); + } + } + + [TableName(Database="KanoonIr", Name="Area")] + public class Area + { + [ PrimaryKey(1)] public int AreaCode { get; set; } + public string AreaName { get; set; } + public int StateCode { get; set; } + [ PrimaryKey(2)] public int CityCode { get; set; } + public string Address { get; set; } + public string Tels { get; set; } + [Nullable ] public string WebSite { get; set; } + public bool IsActive { get; set; } + } + + [Test, ExpectedException(typeof(InvalidOperationException), ExpectedMessage="Cannot access destination table '[KanoonIr]..[Area]'.")] + public void Issue260([IncludeDataContexts("Sql2005")] string context) + { + using (var db = GetDataContext(context)) + { + ((DbManager)db).InsertBatch(new[] { new Area { AreaCode = 1 } }); + } + } + } +}