1/**
2 * Copyright (C) 2006 Google Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.google.inject;
18
19import com.google.common.collect.ImmutableSet;
20import com.google.inject.internal.MoreTypesTest;
21import com.google.inject.internal.UniqueAnnotationsTest;
22import com.google.inject.internal.WeakKeySetTest;
23import com.google.inject.internal.util.LineNumbersTest;
24import com.google.inject.matcher.MatcherTest;
25import com.google.inject.name.NamedEquivalanceTest;
26import com.google.inject.name.NamesTest;
27import com.google.inject.spi.BindingTargetVisitorTest;
28import com.google.inject.spi.ElementApplyToTest;
29import com.google.inject.spi.ElementSourceTest;
30import com.google.inject.spi.ElementsTest;
31import com.google.inject.spi.HasDependenciesTest;
32import com.google.inject.spi.InjectionPointTest;
33import com.google.inject.spi.InjectorSpiTest;
34import com.google.inject.spi.ModuleAnnotatedMethodScannerTest;
35import com.google.inject.spi.ModuleRewriterTest;
36import com.google.inject.spi.ModuleSourceTest;
37import com.google.inject.spi.ProviderMethodsTest;
38import com.google.inject.spi.SpiBindingsTest;
39import com.google.inject.spi.ToolStageInjectorTest;
40import com.google.inject.util.NoopOverrideTest;
41import com.google.inject.util.OverrideModuleTest;
42import com.google.inject.util.ProvidersTest;
43import com.google.inject.util.TypesTest;
44
45import com.googlecode.guice.GuiceTck;
46import com.googlecode.guice.Jsr330Test;
47
48import junit.framework.Test;
49import junit.framework.TestSuite;
50
51import java.util.Set;
52
53/**
54 * @author crazybob@google.com (Bob Lee)
55 */
56public class AllTests {
57
58  private static final Set<String> SUPPRESSED_TEST_NAMES = ImmutableSet.of(
59      "testUnscopedProviderWorksOutsideOfRequestedScope(" + ScopesTest.class.getName() + ")",
60      "testCannotConvertUnannotatedBindings(" + TypeConversionTest.class.getName() + ")"
61  );
62
63  public static Test suite() {
64    TestSuite suite = new TestSuite();
65
66    suite.addTest(GuiceTck.suite());
67    suite.addTestSuite(BinderTest.class);
68    suite.addTest(BinderTestSuite.suite());
69    suite.addTestSuite(BindingAnnotationTest.class);
70    suite.addTestSuite(BindingOrderTest.class);
71    suite.addTestSuite(BindingTest.class);
72    suite.addTestSuite(BoundInstanceInjectionTest.class);
73    suite.addTestSuite(BoundProviderTest.class);
74    suite.addTestSuite(CircularDependencyTest.class);
75    suite.addTestSuite(DuplicateBindingsTest.class);
76    // ErrorHandlingTest.class is not a testcase
77    suite.addTestSuite(EagerSingletonTest.class);
78    suite.addTestSuite(GenericInjectionTest.class);
79    suite.addTestSuite(ImplicitBindingTest.class);
80    suite.addTestSuite(TypeListenerTest.class);
81    suite.addTestSuite(InjectorTest.class);
82    suite.addTestSuite(JitBindingsTest.class);
83    // IntegrationTest is AOP-only
84    suite.addTestSuite(KeyTest.class);
85    suite.addTestSuite(LoggerInjectionTest.class);
86    // MethodInterceptionTest is AOP-only
87    suite.addTestSuite(MembersInjectorTest.class);
88    suite.addTestSuite(ModulesTest.class);
89    suite.addTestSuite(ModuleTest.class);
90    suite.addTestSuite(ModuleAnnotatedMethodScannerTest.class);
91    suite.addTestSuite(NullableInjectionPointTest.class);
92    suite.addTestSuite(OptionalBindingTest.class);
93    suite.addTestSuite(OverrideModuleTest.class);
94    suite.addTestSuite(ParentInjectorTest.class);
95    suite.addTestSuite(PrivateModuleTest.class);
96    suite.addTestSuite(ProviderInjectionTest.class);
97    suite.addTestSuite(ProvisionExceptionTest.class);
98    suite.addTestSuite(ProvisionListenerTest.class);
99    // ProxyFactoryTest is AOP-only
100    suite.addTestSuite(ReflectionTest.class);
101    suite.addTestSuite(RequestInjectionTest.class);
102    suite.addTestSuite(RequireAtInjectOnConstructorsTest.class);
103    suite.addTestSuite(ScopesTest.class);
104    suite.addTestSuite(SerializationTest.class);
105    suite.addTestSuite(SuperclassTest.class);
106    suite.addTestSuite(TypeConversionTest.class);
107    suite.addTestSuite(TypeLiteralInjectionTest.class);
108    suite.addTestSuite(TypeLiteralTest.class);
109    suite.addTestSuite(TypeLiteralTypeResolutionTest.class);
110    suite.addTestSuite(WeakKeySetTest.class);
111
112    // internal
113    suite.addTestSuite(LineNumbersTest.class);
114    suite.addTestSuite(MoreTypesTest.class);
115    suite.addTestSuite(UniqueAnnotationsTest.class);
116
117    // matcher
118    suite.addTestSuite(MatcherTest.class);
119
120    // names
121    suite.addTestSuite(NamesTest.class);
122    suite.addTestSuite(NamedEquivalanceTest.class);
123
124    // spi
125    suite.addTestSuite(BindingTargetVisitorTest.class);
126    suite.addTestSuite(ElementsTest.class);
127    suite.addTestSuite(ElementApplyToTest.class);
128    suite.addTestSuite(HasDependenciesTest.class);
129    suite.addTestSuite(InjectionPointTest.class);
130    suite.addTestSuite(InjectorSpiTest.class);
131    suite.addTestSuite(ModuleRewriterTest.class);
132    suite.addTestSuite(ProviderMethodsTest.class);
133    suite.addTestSuite(SpiBindingsTest.class);
134    suite.addTestSuite(ToolStageInjectorTest.class);
135    suite.addTestSuite(ModuleSourceTest.class);
136    suite.addTestSuite(ElementSourceTest.class);
137
138    // tools
139    // suite.addTestSuite(JmxTest.class); not a testcase
140
141    // util
142    suite.addTestSuite(NoopOverrideTest.class);
143    suite.addTestSuite(ProvidersTest.class);
144    suite.addTestSuite(TypesTest.class);
145
146    /*if[AOP]*/
147    suite.addTestSuite(com.google.inject.internal.ProxyFactoryTest.class);
148    suite.addTestSuite(IntegrationTest.class);
149    suite.addTestSuite(MethodInterceptionTest.class);
150    suite.addTestSuite(com.googlecode.guice.BytecodeGenTest.class);
151    /*end[AOP]*/
152
153    // googlecode.guice
154    suite.addTestSuite(com.googlecode.guice.OSGiContainerTest.class);
155    suite.addTestSuite(Jsr330Test.class);
156
157    return SuiteUtils.removeSuppressedTests(suite, SUPPRESSED_TEST_NAMES);
158  }
159}
160