1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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
;
22 public class LazyTestCase
: AbstractActiveRecordTest
25 public void CanSaveAndLoadLazyEntityOutsideOfScope()
27 ActiveRecordStarter
.Initialize(GetConfigSource(),
28 typeof(BlogLazy
), typeof(PostLazy
));
30 BlogLazy blog
= new BlogLazy();
32 PostLazy post
= new PostLazy(blog
, "a", "b", "c");
35 PostLazy postFromDb
= PostLazy
.Find(post
.Id
);
36 Assert
.AreEqual("a", postFromDb
.Title
);
41 public void CanSaveAndLoadLazy()
43 ActiveRecordStarter
.Initialize(GetConfigSource(),typeof(VeryLazyObject
));
45 VeryLazyObject lazy
= new VeryLazyObject();
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
);