1: [TestFixture]
2: public class Given_that_a_user_exist_in_repository:Db4oBaseTester
3: { 4: private IUserRepository repository;
5: private User user;
6:
7: protected override void OnStartup()
8: { 9: repository = new UserRepository(objectContainer);
10: user = new User {Username = "testuser", Password = "password"}; 11: user.Roles = new List<Role> {new Role {RoleType = UserRepositoryTester.RoleType.User}}; 12: objectContainer.Store(user);
13: }
14: [Test]
15: public void When_a_linq_query_is_executed_the_user_should_be_returned()
16: { 17: IEnumerable<User> users = from User u in repository.Query()
18: where u.Username.Equals("testuser") && u.Roles.Count == 1 19: select u;
20: IList<User> userList = new List<User>(users);
21:
22: Assert.That(userList.Count, Is.EqualTo(1));
23: }
24: [Test]
25: public void When_a_user_is_deleted_the_user_should_be_removed_from_the_repository()
26: { 27: repository.Delete(user);
28:
29: IObjectSet retrievedUser = objectContainer.QueryByExample(user);
30: Assert.That(retrievedUser.Count, Is.EqualTo(0));
31: }
32: [Test]
33: public void When_a_username_is_supplied_the_repository_should_return_the_user()
34: { 35: User retrivedUser = repository.Get(user.Username);
36:
37: Assert.That(user,Is.EqualTo(retrivedUser));
38: }
39: [Test]
40: public void When_the_user_object_is_changed_the_repository_should_save_the_changes()
41: { 42: user.Username += "1";
43: repository.Save(user);
44:
45: User retrievedUser = (User) objectContainer.QueryByExample(new User() {Username = user.Username})[0]; 46:
47: Assert.That(user, Is.EqualTo(retrievedUser));
48: }
49: protected override void OnTearDown()
50: { 51: objectContainer.Delete(user);
52: }
53: }