public void TestManyToManyCase2() { Role role = new Role(); role.Name = "Role1"; User user; for (int i = 0; i < 5; i++) { user = new User(); gateway.Save(user); role.Users.Add(user); } gateway.Save <Role>(role); role = gateway.Find <Role>(role.ID); Assert.AreEqual(5, role.Users.Count); gateway.Delete <Role>(role); Assert.IsNull(gateway.Find <Role>(role.ID)); Assert.AreEqual(0, (int)gateway.Count <UserRoles>(UserRoles._.RoleID == role.ID)); }
//[TestMethod] public void TestManyToMany() { m_User user1 = new m_User(); user1.Name = "teddy1"; m_User user2 = new m_User(); user2.Name = "teddy2"; m_Group group = new m_Group(); group.Name = "group"; group.Users.Add(user1); group.Users.Add(user2); gateway.Save(group); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(2, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); user1 = gateway.Find <m_User>(user1.ID); user1.Groups = new m_GroupArrayList(); gateway.Save(user1); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); user1.Groups.Add(group); gateway.Save(user1); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(2, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); gateway.Delete(user1); Assert.AreEqual(1, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); group = gateway.Find <m_Group>(group.ID); group.Users = null; gateway.Save(group); Assert.AreEqual(0, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); gateway.Delete(group); Assert.AreEqual(0, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_Group>(WhereClip.All)); }
public void TestManyToManyCase() { User user1 = new User(); user1.Name = "user1"; gateway.Save(user1); User user2 = new User(); user2.Name = "user2"; gateway.Save(user2); User user3 = new User(); user3.Name = "user3"; //gateway.Save(user3); - user3 not saved Group group1 = new Group(); group1.Name = "group1"; gateway.Save(group1); Group group2 = new Group(); group2.Name = "group2"; gateway.Save(group2); Group group3 = new Group(); group3.Name = "group3"; //gateway.Save(group3); - group3 not saved //check saved users and groups Assert.AreEqual(gateway.Count <User>(WhereClip.All), 2); Assert.AreEqual(gateway.Count <Group>(WhereClip.All), 2); Assert.AreEqual(gateway.Count <UserGroup>(WhereClip.All), 0); //add user1 to group1 and group2 user1.Groups.Add(group1); gateway.Save(user1); Assert.AreEqual(gateway.Count <UserGroup>(WhereClip.All), 1); user1 = gateway.Find <User>(user1.ID); user1.Groups.Add(group2); user1.Groups.Add(group3); //althrough group3 is added to user1, it will not be saved, the relation row for user1 and group3 will not be saved, either. gateway.Save(user1); //check user1 = gateway.Find <User>(user1.ID); Assert.AreEqual(user1.Groups.Count, 2); Assert.IsNull(gateway.Find <UserGroup>(user1.ID, group3.ID)); Assert.AreEqual(gateway.Count <Group>(WhereClip.All), 2); //save group3 and add user1, user2 to group3 group3.Users.Add(user1); group3.Users.Add(user2); group3.Users.Add(user3); //althrough user3 is added to group3, it will not be saved, the relation row for user3 and group3 will not be saved, either. gateway.Save(group3); //check Assert.AreEqual(gateway.Count <User>(WhereClip.All), 2); Assert.AreEqual(gateway.Count <Group>(WhereClip.All), 3); Assert.AreEqual(gateway.Count <UserGroup>(WhereClip.All), 4); user1 = gateway.Find <User>(user1.ID); Assert.AreEqual(user1.Groups.Count, 3); //delete user1, cascade delete group1,group2 and group3 related to user1 gateway.Delete(user1); //check Assert.AreEqual(gateway.Count <User>(WhereClip.All), 1); Assert.AreEqual(gateway.Count <Group>(WhereClip.All), 3); Assert.AreEqual(gateway.Count <UserGroup>(WhereClip.All), 1); }