/*******************************************************************************
 * Copyright (c) 2013, 2021 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.osgi.tests.container;

import junit.framework.JUnit4TestAdapter;
import junit.framework.Test;
import junit.framework.TestSuite;

public class AllTests {
	public static Test suite() {
		TestSuite suite = new TestSuite(AllTests.class.getName());
		suite.addTest(new JUnit4TestAdapter(TestModuleContainer.class));
		suite.addTest(new JUnit4TestAdapter(ResolutionReportTest.class));
		suite.addTest(new JUnit4TestAdapter(ModuleContainerUsageTest.class));
		suite.addTest(new JUnit4TestAdapter(NamespaceListTest.class));
		suite.addTest(new JUnit4TestAdapter(NamespaceListBuilderTest.class));
		return suite;
	}
}
