Package org.apache.jdo.tck.api.persistencemanager.fetchplan

Source Code of org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest

/*
* Copyright 2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jdo.tck.api.persistencemanager.fetchplan;

import java.util.Collection;
import java.util.HashSet;

import javax.jdo.FetchPlan;

import org.apache.jdo.tck.JDO_Test;
import org.apache.jdo.tck.pc.mylib.PCPoint;
import org.apache.jdo.tck.pc.mylib.PCRect;

import org.apache.jdo.tck.util.BatchTestRunner;

/**
* This class is an abstract superclass for the fetch plan tests.
* It contains methods useful for testing the behavior of the
* fetch plan.
*/

public class AbstractFetchPlanTest extends JDO_Test {

    /**
     * The <code>main</code> method is not defined in this abstract class.
     */

    /** The persistent instances used in the test.
     */
    protected PCPoint upperLeft;
    protected PCPoint lowerRight;
    protected PCRect pcrect;

    /** The oids of the persistent instances used in the test.
     */
    protected Object upperLeftoid;
    protected Object lowerRightoid;
    protected Object pcrectoid;

    /** The String arrays used for setting fetch groups.
     */
    protected String[] defaultGroup = new String[]
        {"default"};
    protected String[] upperLeftGroup = new String[]
        {"default", "PCRect.upperLeft"};
    protected String[] lowerRightGroup = new String[]
        {"default", "PCRect.lowerRight"};
    protected String[] bothGroup = new String[]{
        "default", "PCRect.upperLeft", "PCRect.lowerRight"};
    /**
     * @see JDO_Test#localSetUp()
     */
    protected void localSetUp() {
        addTearDownClass(PCRect.class);
        addTearDownClass(PCPoint.class);
        upperLeft = new PCPoint(0,10);
        lowerRight = new PCPoint(10,0);
        pcrect = new PCRect(upperLeft, lowerRight);
        getPM().currentTransaction().begin();
        pm.makePersistent(pcrect); // makes all three persistent
        upperLeftoid = pm.getObjectId(upperLeft);
        lowerRightoid = pm.getObjectId(lowerRight);
        pcrectoid = pm.getObjectId(pcrect);
        pm.currentTransaction().commit();
    }

    /** Set the default plus upper left field as the fetch group.
     */
    protected void setDefaultGroup() {
        FetchPlan fp = getPM().getFetchPlan();
        fp.setGroups(defaultGroup);
    }

    /** Set the default plus upper left field as the fetch group.
     */
    protected void setUpperLeftGroup() {
        FetchPlan fp = getPM().getFetchPlan();
        fp.setGroups(upperLeftGroup);
    }

    /** Set the default plus lower right field as the fetch group.
     */
    protected void setLowerRightGroup() {
        FetchPlan fp = getPM().getFetchPlan();
        fp.setGroups(upperLeftGroup);
    }

    /** Set the default plus both fields as the fetch group.
     */
    protected void setBothGroup() {
        FetchPlan fp = getPM().getFetchPlan();
        fp.setGroups(bothGroup);
    }

    /** */
    protected void checkBothLoaded(String location, PCRect pcrect) {
        checkUpperLeftLoaded(location, pcrect);
        checkLowerRightLoaded(location, pcrect);
    }

    /** */
    protected void checkUpperLeftLoaded(String location, PCRect pcrect) {
        if (pcrect.upperLeft == null) {
            appendMessage(location + NL + "Upper Left was null." + NL +
                "The fetch plan includes PCRect.upperLeft and this field" +
                " should have been loaded.");
        }
    }

    /** */
    protected void checkLowerRightLoaded(String location, PCRect pcrect) {
        if (pcrect.lowerRight == null) {
            appendMessage(location + NL + "Lower Right was null." + NL +
                "The fetch plan includes PCRect.lowerRight and this field" +
                " should have been loaded.");
        }
    }
    protected void checkGroups(String location,
            FetchPlan fetchPlan, String[] groups) {
        Collection expected = new HashSet();
        Collection actual = fetchPlan.getGroups();
        for (int i = 0; i < groups.length; ++i) {
            expected.add(groups[i]);
        }
        if (!expected.equals(actual)) {
            appendMessage(location + NL + "Fetch groups differ." + NL +
                "expected: " + expected + NL +
                "actual: " + actual + NL);
        }
    }
}
TOP

Related Classes of org.apache.jdo.tck.api.persistencemanager.fetchplan.AbstractFetchPlanTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.