blob: 26a1d0d1e2ec182915c6d1281b2977edd7d61383 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.synapse.samples.framework;
import junit.framework.TestSuite;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.samples.framework.tests.rest.Sample10002;
import org.apache.synapse.samples.framework.tests.rest.Sample10003;
import org.apache.synapse.samples.framework.tests.tasks.*;
import org.apache.synapse.samples.framework.tests.transport.Sample10101;
import org.apache.synapse.samples.framework.tests.transport.Sample250;
import org.apache.synapse.samples.framework.tests.advanced.*;
import org.apache.synapse.samples.framework.tests.endpoint.*;
import org.apache.synapse.samples.framework.tests.message.*;
import org.apache.synapse.samples.framework.tests.proxy.*;
import org.apache.synapse.samples.framework.tests.qos.Sample100;
import org.apache.synapse.samples.framework.tests.qos.Sample101;
import org.apache.synapse.samples.framework.tests.rest.Sample10001;
import org.apache.synapse.samples.framework.tests.rest.Sample800;
import org.apache.synapse.samples.framework.tests.transport.Sample251;
import java.util.ArrayList;
import java.util.HashMap;
/**
* This is executed by maven and handles which samples to run
*/
public class TestSamplesHandlerSuite extends TestSuite {
private static final Log log = LogFactory.getLog(TestSamplesHandlerSuite.class);
private static HashMap<String, Object> sampleClassRepo
= new HashMap<String, Object>();
public static TestSuite suite() {
//Adding all samples available
populateSamplesMap();
ArrayList<Class> suiteClassesList = new ArrayList<Class>();
TestSuite suite = new TestSuite();
String inputSuiteName = System.getProperty("suite");
String tests = System.getProperty("tests");
String suiteName = "SamplesSuite";
//preparing suites, if specified
if (inputSuiteName != null) {
if (inputSuiteName.equalsIgnoreCase("message")) {
suiteName = "MessageMediationSamplesSuite";
for (int i = 0; i <= 15; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("endpoint")) {
suiteName = "EndpointSamplesSuite";
for (int i = 50; i <= 60; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("qos")) {
suiteName = "QoSSamplesSuite";
for (int i = 100; i <= 110; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("proxy")) {
suiteName = "ProxySamplesSuite";
for (int i = 150; i <= 170; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("transport")) {
suiteName = "TransportSamplesSuite";
for (int i = 250; i <= 280; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("tasks")) {
suiteName = "TasksSamplesSuite";
for (int i = 300; i <= 310; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("advanced")) {
suiteName = "AdvancedSamplesSuite";
for (int i = 350; i <= 490; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
if (inputSuiteName.equalsIgnoreCase("eventing")) {
suiteName = "EventingSamplesSuite";
for (int i = 500; i <= 510; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
} else if (tests != null) {
String[] testArray = tests.split(",");
suiteName = "SelectedSamplesSuite";
for (String testNum : testArray) {
Class testClass = (Class) sampleClassRepo.get(testNum);
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
} else {
suiteName = "AllSamplesSuite";
for (int i = 0; i <= 20000; i++) {
Class testClass = (Class) sampleClassRepo.get(Integer.toString(i));
if (testClass != null) {
suiteClassesList.add(testClass);
}
}
}
for (Class testClass : suiteClassesList) {
suite.addTestSuite(testClass);
log.info("Adding Sample:" + testClass);
}
suite.setName(suiteName);
return suite;
}
private static void populateSamplesMap() {
//Message Mediation
sampleClassRepo.put("0", Sample0.class);
sampleClassRepo.put("1", Sample1.class);
sampleClassRepo.put("2", Sample2.class);
sampleClassRepo.put("3", Sample3.class);
sampleClassRepo.put("4", Sample4.class);
sampleClassRepo.put("5", Sample5.class);
sampleClassRepo.put("6", Sample6.class);
sampleClassRepo.put("7", Sample7.class);
sampleClassRepo.put("8", Sample8.class);
sampleClassRepo.put("9", Sample9.class);
sampleClassRepo.put("10", Sample10.class);
sampleClassRepo.put("11", Sample11.class);
sampleClassRepo.put("12", Sample12.class);
sampleClassRepo.put("13", Sample13.class);
sampleClassRepo.put("15", Sample15.class);
sampleClassRepo.put("16", Sample16.class);
//Endpoint
sampleClassRepo.put("50", Sample50.class);
sampleClassRepo.put("51", Sample51.class);
sampleClassRepo.put("52", Sample52.class);
sampleClassRepo.put("53", Sample53.class);
sampleClassRepo.put("54", Sample54.class);
sampleClassRepo.put("55", Sample55.class);
sampleClassRepo.put("56", Sample56.class);
//sampleClassRepo.put("57", Sample57.class); // intermittently fail
sampleClassRepo.put("58", Sample58.class);
sampleClassRepo.put("59", Sample59.class);
//QoS
sampleClassRepo.put("100", Sample100.class);
//Proxy Service
sampleClassRepo.put("150", Sample150.class);
sampleClassRepo.put("151", Sample151.class);
sampleClassRepo.put("152", Sample152.class);
//sampleClassRepo.put("153", Sample153.class); // unable to load the JKS files
sampleClassRepo.put("154", Sample154.class);
sampleClassRepo.put("155", Sample155.class);
sampleClassRepo.put("156", Sample156.class);
sampleClassRepo.put("157", Sample157.class);
sampleClassRepo.put("161", Sample161.class);
//Transport switching
sampleClassRepo.put("250", Sample250.class);
sampleClassRepo.put("251", Sample251.class);
//Tasks
sampleClassRepo.put("300", Sample300.class);
sampleClassRepo.put("301", Sample301.class);
sampleClassRepo.put("302", Sample302.class);
//Advanced
sampleClassRepo.put("350", Sample350.class);
sampleClassRepo.put("351", Sample351.class);
sampleClassRepo.put("352", Sample352.class);
sampleClassRepo.put("353", Sample353.class);
sampleClassRepo.put("354", Sample354.class);
sampleClassRepo.put("360", Sample360.class);
sampleClassRepo.put("361", Sample361.class);
sampleClassRepo.put("362", Sample362.class);
sampleClassRepo.put("370", Sample370.class); // neethi 3.0.x and wso2throttle incompatibility
sampleClassRepo.put("371", Sample371.class);
sampleClassRepo.put("372", Sample372.class);
sampleClassRepo.put("380", Sample380.class);
sampleClassRepo.put("390", Sample390.class);
sampleClassRepo.put("391", Sample391.class);
sampleClassRepo.put("420", Sample420.class);
sampleClassRepo.put("430", Sample430.class);
sampleClassRepo.put("431", Sample431.class);
sampleClassRepo.put("432", Sample432.class);
sampleClassRepo.put("433", Sample433.class);
sampleClassRepo.put("434", Sample434.class);
sampleClassRepo.put("450", Sample450.class);
sampleClassRepo.put("451", Sample451.class);
sampleClassRepo.put("452", Sample452.class);
sampleClassRepo.put("460", Sample460.class);
sampleClassRepo.put("800", Sample800.class);
sampleClassRepo.put("10001", Sample10001.class);
sampleClassRepo.put("10002", Sample10002.class);
sampleClassRepo.put("10003", Sample10003.class);
sampleClassRepo.put("10101", Sample10101.class);
}
}