Fixing an issue with output parameters that are of type IntPtr
[castle.git] / ActiveRecord / Castle.ActiveRecord.Tests / LazyTestCase.cs
blobdee18dede5a9ae897d4601ffe140149fa5c0cb8d
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.ActiveRecord.Tests
17 using NUnit.Framework;
19 using Castle.ActiveRecord.Tests.Model;
21 [TestFixture]
22 public class LazyTestCase : AbstractActiveRecordTest
24 [Test]
25 public void CanSaveAndLoadLazyEntityOutsideOfScope()
27 ActiveRecordStarter.Initialize(GetConfigSource(),
28 typeof(BlogLazy), typeof(PostLazy));
29 Recreate();
30 BlogLazy blog = new BlogLazy();
31 blog.Save();
32 PostLazy post = new PostLazy(blog, "a", "b", "c");
33 post.Save();
35 PostLazy postFromDb = PostLazy.Find(post.Id);
36 Assert.AreEqual("a", postFromDb.Title);
40 [Test]
41 public void CanSaveAndLoadLazy()
43 ActiveRecordStarter.Initialize(GetConfigSource(),typeof(VeryLazyObject));
44 Recreate();
45 VeryLazyObject lazy = new VeryLazyObject();
46 lazy.Title = "test";
48 ActiveRecordMediator.Save(lazy);
50 VeryLazyObject lazyFromDb = (VeryLazyObject)ActiveRecordMediator.FindByPrimaryKey(typeof(VeryLazyObject),lazy.Id);
51 Assert.AreEqual("test", lazyFromDb.Title);
53 lazyFromDb.Title = "test for update";
54 ActiveRecordMediator.Update(lazyFromDb);
56 lazyFromDb = (VeryLazyObject)ActiveRecordMediator.FindByPrimaryKey(typeof(VeryLazyObject), lazy.Id);
57 Assert.AreEqual("test for update", lazyFromDb.Title);