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(); }
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"); }