Exemple #1
0
 public void TestConcurrencyControlError()
 {
     try
     {
         // object uniqing defeats this test
         GentleSettings.CacheObjects = false;
         Check.LogError(LogCategories.General, "The following error message has been provoked as part of a test case:");
         if (GentleSettings.ConcurrencyControl)
         {
             m1 = MemberCC.Retrieve(1);
             m2 = MemberCC.Retrieve(1);
             long version = m1.DatabaseVersion;
             m1.Persist();                     // ok
             m2.Persist();                     // fails as it is the same record as m1
         }
         else
         {
             // fake expected result
             Check.Fail(Error.UnexpectedRowCount, 0, 0);
         }
     }
     catch (GentleException ge)
     {
         if (ge.Error == Error.UnexpectedRowCount)
         {
             throw new GentleException(Error.Unspecified, "TEST");
         }
         else
         {
             throw;
         }
     }
 }
Exemple #2
0
 public void TestConcurrencyControlValue()
 {
     if (GentleSettings.ConcurrencyControl)
     {
         m1 = MemberCC.Retrieve(1);
         long version = m1.DatabaseVersion;
         m1.Persist();
         Assert.AreEqual(version + 1, m1.DatabaseVersion, "Object version was not updated.");
         m2 = MemberCC.Retrieve(1);
         Assert.AreEqual(m1.DatabaseVersion, m2.DatabaseVersion, "Database version was not updated.");
     }
 }
Exemple #3
0
 public void TestCRUD()
 {
     GentleSettings.CacheObjects = false;
     if (GentleSettings.ConcurrencyControl)
     {
         m1 = new MemberCC(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 = MemberCC.Retrieve(m1.Id);
         // verify select/insert
         Assert.IsTrue(m2.Id != 0, "The object could not be retrieved from the database!");
         Assert.IsTrue(m2.Id > 4, "Existing id was reused!");
         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!");
         Assert.AreEqual(m1.DatabaseVersion, m2.DatabaseVersion, "Database revision not retrieved!");
         // update
         m2.Name    = "Jane Doe";
         m2.Address = "*****@*****.**";
         m2.Persist();
         Assert.AreEqual(m1.DatabaseVersion + 1, m2.DatabaseVersion, "Database revision not incremented!");
         // verify update
         m1 = MemberCC.Retrieve(m2.Id);
         Assert.AreEqual(m2.Name, m1.Name, "Name not updated!");
         Assert.AreEqual(m2.Address, m1.Address, "SenderAddress not updated!");
         Assert.AreEqual(m1.DatabaseVersion, m2.DatabaseVersion, "Database revision not retrieved!");
         // delete
         m2.Remove();
         // verify delete by counting the number of rows
         SqlBuilder sb = new SqlBuilder(StatementType.Count, typeof(MemberCC));
         sb.AddConstraint(Operator.Equals, "Id", m1.Id);
         SqlResult sr = Broker.Execute(sb.GetStatement(true));
         Assert.AreEqual(0, sr.Count, "Object not removed");
     }
 }