package org.eclipse.persistence.testing.tests.collections.map; | |
import java.util.Enumeration; | |
import java.util.Iterator; | |
import java.util.Map; | |
import java.util.Vector; | |
import org.eclipse.persistence.expressions.ExpressionBuilder; | |
import org.eclipse.persistence.mappings.Association; | |
import org.eclipse.persistence.queries.ReportQuery; | |
import org.eclipse.persistence.queries.ReportQueryResult; | |
import org.eclipse.persistence.testing.models.collections.map.DirectEntity1MMapHolder; | |
import org.eclipse.persistence.testing.tests.queries.report.ReportQueryTestCase; | |
public class MapEntryDirectEntity1MReportQueryTest extends ReportQueryTestCase{ | |
protected void buildExpectedResults() { | |
Vector holders = getSession().readAllObjects(DirectEntity1MMapHolder.class); | |
for (Enumeration e = holders.elements(); e.hasMoreElements(); ) { | |
DirectEntity1MMapHolder holder = (DirectEntity1MMapHolder)e.nextElement(); | |
Iterator<Map.Entry> i = holder.getDirectToEntityMap().entrySet().iterator(); | |
while (i.hasNext()){ | |
Object[] result = new Object[1]; | |
Map.Entry entry = i.next(); | |
result[0] = new Association(entry.getKey(), entry.getValue()); | |
addResult(result, null); | |
} | |
} | |
} | |
protected void removeFromResult(ReportQueryResult result, Vector expected) { | |
for (Enumeration e = expected.elements(); e.hasMoreElements();) { | |
ReportQueryResult expectedResult = (ReportQueryResult)e.nextElement(); | |
Association expectedAssocication = (Association)expectedResult.getByIndex(0); | |
Association resultAssocication = (Association)result.getByIndex(0); | |
if (expectedAssocication.getKey().equals(resultAssocication.getKey()) && expectedAssocication.getValue().equals(resultAssocication.getValue())) { | |
expected.removeElement(expectedResult); | |
return; | |
} | |
} | |
getSession().logMessage("missing element: " + result); | |
} | |
protected void setup() throws Exception { | |
super.setup(); | |
reportQuery = new ReportQuery(new ExpressionBuilder()); | |
reportQuery.setReferenceClass(DirectEntity1MMapHolder.class); | |
reportQuery.addAttribute("entry", reportQuery.getExpressionBuilder().anyOf("directToEntityMap").mapEntry()); | |
} | |
} |