You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by cl...@apache.org on 2010/11/27 05:24:31 UTC
svn commit: r1039618 - in
/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping:
AbstractRelationshipTest.java Relationship1ToManyAllRelationships.java
RelationshipManyToManyAllRelationships.java
Author: clr
Date: Sat Nov 27 04:24:30 2010
New Revision: 1039618
URL: http://svn.apache.org/viewvc?rev=1039618&view=rev
Log:
JDO-669 Avoid using hashCode and equals in contains test for deleted objects
Modified:
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java?rev=1039618&r1=1039617&r2=1039618&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java Sat Nov 27 04:24:30 2010
@@ -18,12 +18,15 @@
package org.apache.jdo.tck.mapping;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.apache.jdo.tck.AbstractReaderTest;
import org.apache.jdo.tck.pc.company.CompanyFactoryRegistry;
import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.Employee;
+import org.apache.jdo.tck.pc.company.Project;
/*
* Abstract class for managed relationship tests
@@ -72,4 +75,22 @@ public class AbstractRelationshipTest ex
}
}
+ protected boolean containsEmployee(Collection<Employee> employees, long empid) {
+ for (Employee emp: employees) {
+ if (emp.getPersonid() == empid) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected boolean containsProject(Collection<Project> projects, long projid) {
+ for (Project project: projects) {
+ if (project.getProjid() == projid) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java?rev=1039618&r1=1039617&r2=1039618&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java Sat Nov 27 04:24:30 2010
@@ -409,21 +409,14 @@ public class Relationship1ToManyAllRelat
public void testDeleteFromMappedSide() {
testMethod = "testDeleteFromMappedSide";
if (isTestToBePerformed) {
+ // remember id
+ long emp1Id = emp1.getPersonid();
// Set relationship
pm.deletePersistent(emp1);
pm.flush();
// Postcondition
- boolean contained = false;
- Iterator iter = dept1.getEmployees().iterator();
- while (iter.hasNext()) {
- Object elem = iter.next();
- if (JDOHelper.getObjectId(elem).equals(emp1)) {
- contained = true;
- break;
- }
- }
- deferredAssertTrue(!contained,
+ deferredAssertTrue(!containsEmployee(dept1.getEmployees(), emp1Id),
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "other side of relationship not set on flush");
@@ -434,7 +427,7 @@ public class Relationship1ToManyAllRelat
pm.currentTransaction().begin();
dept1 = (Department)pm.getObjectById(dept1Oid);
deferredAssertTrue(
- !dept1.getEmployees().contains(emp1),
+ !containsEmployee(dept1.getEmployees(), emp1Id),
ASSERTION_FAILED + testMethod,
"In new transaction, postcondition is false; " +
"other side of relationship is not set.");
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java?rev=1039618&r1=1039617&r2=1039618&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java Sat Nov 27 04:24:30 2010
@@ -162,7 +162,7 @@ public class RelationshipManyToManyAllRe
IEmployee empNew = new FullTimeEmployee(100, "Jerry", "Valentine",
"Brown", new Date(500L), new Date(10000L), 125000);
pm.makePersistent(empNew);
- Set members = new HashSet();
+ Set<IEmployee> members = new HashSet<IEmployee>();
members.add(empNew);
proj1.setMembers(members);
Object empNewOid = pm.getObjectId((Object)empNew);
@@ -201,7 +201,7 @@ public class RelationshipManyToManyAllRe
IProject projNew = new Project(99L, "Skunkworks",
new BigDecimal(10000.35));
pm.makePersistent(projNew);
- Set projects = new HashSet();
+ Set<IProject> projects = new HashSet<IProject>();
projects.add(projNew);
emp1.setProjects(projects);
Object projNewOid = pm.getObjectId((Object)projNew);
@@ -438,12 +438,14 @@ public class RelationshipManyToManyAllRe
public void testDeleteFromMappedSide() {
testMethod = "testDeleteFromMappedSide";
if (isTestToBePerformed) {
+ // remember id
+ long proj1Id = proj1.getProjid();
// Set relationship
pm.deletePersistent(proj1);
pm.flush();
// Postcondition
- deferredAssertTrue(!emp1.getProjects().contains(proj1),
+ deferredAssertTrue(!containsProject(emp1.getProjects(), proj1Id),
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "other side of relationship not set on flush");
@@ -454,7 +456,7 @@ public class RelationshipManyToManyAllRe
pm.currentTransaction().begin();
emp1 = (Employee)pm.getObjectById(emp1Oid);
deferredAssertTrue(
- !emp1.getProjects().contains(proj1),
+ !containsProject(emp1.getProjects(), proj1Id),
ASSERTION_FAILED + testMethod,
"In new transaction, postcondition is false; " +
"other side of relationship is not set.");
@@ -468,13 +470,14 @@ public class RelationshipManyToManyAllRe
public void testDeleteFromMappedbySide() {
testMethod = "testDeleteFromMappedbySide";
if (isTestToBePerformed) {
-
+ // remember id
+ long emp1Id = emp1.getPersonid();
// Set relationship
pm.deletePersistent(emp1);
pm.flush();
// Postcondition
- deferredAssertTrue(!proj1.getMembers().contains(emp1),
+ deferredAssertTrue(!containsEmployee(proj1.getMembers(), emp1Id),
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "other side of relationship not set on flush");
@@ -485,7 +488,7 @@ public class RelationshipManyToManyAllRe
pm.currentTransaction().begin();
proj1 = (Project)pm.getObjectById(proj1Oid);
deferredAssertTrue(
- !proj1.getMembers().contains(emp1),
+ !containsEmployee(proj1.getMembers(), emp1Id),
ASSERTION_FAILED + testMethod,
"In new transaction, postcondition is false; " +
"other side of relationship is not set.");