/*******************************************************************************
 * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     Marcel Valovy
 ******************************************************************************/
package org.eclipse.persistence.testing.tests.cache;

import org.eclipse.persistence.testing.framework.TestSuite;

/**
 * Test suite for advanced processing related classes.
 */
public class AdvancedProcessingTestSuite extends TestSuite {

    public AdvancedProcessingTestSuite() {
        setDescription("This suite tests advanced processing");
    }

    public AdvancedProcessingTestSuite(boolean isSRG) {
        super(isSRG);
        setDescription("This suite tests advanced processing.");
    }

    public void addTests() {
        addTest(new AdvancedProcessorTestCase());
    }
}