示例#1
0
        public void Test_NtoM_WithExtraRelationColumn()
        {
            // create a user with a known id
            u1 = new User("John", "Doe", Roles.Customer);
            u1.Persist();
            Role r1 = fixedRoles[2];

            Assert.IsNotNull(u1, "Test case invalid unless a record with UserId=" + u1.Id + " exists");
            Member m = Member.Retrieve(1);

            // add role
            u1.MemberRoles.Add(r1, m);
            // verify UserRole table
            IList relations = Broker.RetrieveList(typeof(UserRole));

            Assert.AreEqual(1, relations.Count, "No relation created.");
            UserRole ur = relations[0] as UserRole;

            Assert.AreEqual(m.Id, ur.MemberId, "Relation did not save additional type reference.");
            // remove role
            u1.MemberRoles.Remove(r1);
            // verify UserRole table
            relations = Broker.RetrieveList(typeof(UserRole));
            Assert.AreEqual(0, relations.Count, "Relation not removed.");
            u1.Remove();
        }
示例#2
0
        public void TestCRUD()
        {
            m1 = new Member(list.Id, "John Doe", "*****@*****.**");
            // insert
            m1.Persist();
            Assert.AreEqual(m1.Name, "John Doe", "The object was not properly inserted!");
            Assert.AreEqual(m1.Address, "*****@*****.**", "The object was not properly inserted!");
            // select
            m2 = Member.Retrieve(m1.Id);
            // verify select/insert
            Assert.IsTrue(m2.Id != 0, "The object could not be retrieved from the database!");
            Assert.AreEqual(m1.Id, m2.Id, "The object could not be retrieved from the database!");
            Assert.AreEqual("John Doe", m2.Name, "The object was not properly retrieved on construction!");
            Assert.AreEqual("*****@*****.**", m2.Address,
                            "The object was not properly retrieved on construction!");
            // update
            m2.Name    = "Jane Doe";
            m2.Address = "*****@*****.**";
            m2.Persist();
            // verify update
            m1 = Member.Retrieve(m2.Id);
            Assert.AreEqual(m2.Name, m1.Name, "Name not updated!");
            Assert.AreEqual(m2.Address, m1.Address, "SenderAddress not updated!");
            // delete
            m2.Remove();
            // verify delete by counting the number of rows
            SqlBuilder sb = new SqlBuilder(StatementType.Count, typeof(Member));

            sb.AddConstraint(Operator.Equals, "Id", m1.Id);
            SqlResult sr = Broker.Execute(sb.GetStatement(true));

            Assert.AreEqual(0, sr.Count, "Object not removed");
        }