Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        //[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));
        }
Esempio n. 3
0
        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);
        }