15e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot/*
25e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * Copyright (C) 2012 The Android Open Source Project
35e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot *
45e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * Licensed under the Apache License, Version 2.0 (the "License");
55e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * you may not use this file except in compliance with the License.
65e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * You may obtain a copy of the License at
75e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot *
85e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot *      http://www.apache.org/licenses/LICENSE-2.0
95e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot *
105e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * Unless required by applicable law or agreed to in writing, software
115e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * distributed under the License is distributed on an "AS IS" BASIS,
125e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * See the License for the specific language governing permissions and
145e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * limitations under the License.
155e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot */
165e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotpackage com.android.test.runner;
175e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
185e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport android.app.Instrumentation;
19fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabotimport android.os.Bundle;
205e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport android.test.suitebuilder.annotation.SmallTest;
219463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabotimport android.test.suitebuilder.annotation.Suppress;
225e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
23fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabotimport com.android.test.InjectBundle;
245e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport com.android.test.InjectInstrumentation;
255e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
264c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabotimport junit.framework.TestCase;
274c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
285e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport org.junit.Assert;
295e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport org.junit.Test;
304c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabotimport org.junit.runner.Description;
315e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport org.junit.runner.JUnitCore;
325e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport org.junit.runner.Result;
334c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabotimport org.junit.runner.notification.RunListener;
345e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
355e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport java.io.ByteArrayOutputStream;
365e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotimport java.io.PrintStream;
375e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
385e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot/**
395e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot * Unit tests for {@link TestRequestBuilder}.
405e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot */
415e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabotpublic class TestRequestBuilderTest {
425e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
435e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public static class SampleTest {
445e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
455e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        @SmallTest
465e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        @Test
475e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        public void testSmall() {
485e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        }
495e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
505e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        @Test
515e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        public void testOther() {
525e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        }
535e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    }
545e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
555e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    @SmallTest
565e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public static class SampleClassSize {
575e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
585e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        @Test
595e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        public void testSmall() {
605e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        }
615e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
625e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        @Test
635e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        public void testSmallToo() {
645e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        }
655e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    }
665e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
674c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    public static class SampleNoSize extends TestCase {
684c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
694c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        public void testOther() {
704c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        }
714c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
724c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        public void testOther2() {
734c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        }
744c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
754c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    }
764c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
779463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    public static class SampleJUnit3Test extends TestCase {
789463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
799463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        @SmallTest
809463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testSmall() {
819463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
829463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
839463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        @SmallTest
849463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testSmall2() {
859463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
869463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
879463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testOther() {
889463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
899463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    }
909463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
919463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    @SmallTest
929463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    public static class SampleJUnit3ClassSize extends TestCase {
939463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
949463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testSmall() {
959463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
969463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
979463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testSmall2() {
989463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
999463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1009463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    }
1019463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1029463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    public static class SampleJUnit3Suppressed extends TestCase {
1039463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1049463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testRun() {
1059463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
1069463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1079463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testRun2() {
1089463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
1099463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1109463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        @Suppress
1119463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        public void testSuppressed() {
1129463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        }
1139463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1149463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    }
1159463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
1165e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    @InjectInstrumentation
1175e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public Instrumentation mInstr;
1185e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
119fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot    @InjectBundle
120fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot    public Bundle mBundle;
121fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot
1225e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    /**
1235e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     * Test initial condition for size filtering - that all tests run when no filter is attached
1245e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     */
1255e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    @Test
1265e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public void testNoSize() {
1275e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
1285e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestClass(SampleTest.class.getName());
129fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
1305e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        JUnitCore testRunner = new JUnitCore();
1315e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Result result = testRunner.run(request.getRequest());
1325e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Assert.assertEquals(2, result.getRunCount());
1335e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    }
1345e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
1355e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    /**
1365e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     * Test that size annotation filtering works
1375e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     */
1385e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    @Test
1395e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public void testSize() {
1405e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
1415e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestClass(SampleTest.class.getName());
1425e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestSizeFilter("small");
143fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
1445e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        JUnitCore testRunner = new JUnitCore();
1455e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Result result = testRunner.run(request.getRequest());
1465e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Assert.assertEquals(1, result.getRunCount());
1475e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    }
1485e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot
1495e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    /**
1505e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     * Test that size annotation filtering by class works
1515e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot     */
1525e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    @Test
1535e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    public void testSize_class() {
1545e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
1555e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestClass(SampleTest.class.getName());
1565e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestClass(SampleClassSize.class.getName());
1575e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        b.addTestSizeFilter("small");
158fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
1595e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        JUnitCore testRunner = new JUnitCore();
1605e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Result result = testRunner.run(request.getRequest());
1615e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot        Assert.assertEquals(3, result.getRunCount());
1625e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot    }
16316522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot
16416522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    /**
1654c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot     * Test case where entire JUnit3 test class has been filtered out
1664c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot     */
1674c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    @Test
1684c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    public void testSize_classFiltered() {
1694c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
1704c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        b.addTestClass(SampleTest.class.getName());
1714c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        b.addTestClass(SampleNoSize.class.getName());
1724c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        b.addTestSizeFilter("small");
1734c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
1744c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        MyRunListener l = new MyRunListener();
1754c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        JUnitCore testRunner = new JUnitCore();
1764c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        testRunner.addListener(l);
1774c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        testRunner.run(request.getRequest());
1784c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        Assert.assertEquals(1, l.mTestCount);
1794c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    }
1804c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
1814c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    private static class MyRunListener extends RunListener {
1824c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        private int mTestCount = -1;
1834c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
1844c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        public void testRunStarted(Description description) throws Exception {
1854c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot            mTestCount = description.testCount();
1864c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot        }
1874c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    }
1884c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot
1894c88c2100e947576671cea794fca1f4fe3dc52f5Brett Chabot    /**
1909463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot     * Test size annotations with JUnit3 test methods
1919463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot     */
1929463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    @Test
1939463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    public void testSize_junit3Method() {
1949463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
1959463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        b.addTestClass(SampleJUnit3Test.class.getName());
1969463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        b.addTestClass(SampleNoSize.class.getName());
1979463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        b.addTestSizeFilter("small");
1989463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        TestRequest request = b.build(mInstr, mBundle);
1999463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        JUnitCore testRunner = new JUnitCore();
2009463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        Result r = testRunner.run(request.getRequest());
2019463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        Assert.assertEquals(2, r.getRunCount());
2029463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    }
2039463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
2049463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    /**
2059463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot     * Test @Suppress with JUnit3 tests
2069463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot     */
2079463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    @Test
2089463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    public void testSuppress_junit3Method() {
2099463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
2109463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        b.addTestClass(SampleJUnit3Suppressed.class.getName());
2119463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        TestRequest request = b.build(mInstr, mBundle);
2129463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        JUnitCore testRunner = new JUnitCore();
2139463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        Result r = testRunner.run(request.getRequest());
2149463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot        Assert.assertEquals(2, r.getRunCount());
2159463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    }
2169463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot
2179463bdc2018f4ea7d59cb72bcfdf6efe19921dccBrett Chabot    /**
21816522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot     * Test that annotation filtering by class works
21916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot     */
22016522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    @Test
22116522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    public void testAddAnnotationInclusionFilter() {
22216522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
22316522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addAnnotationInclusionFilter(SmallTest.class.getName());
22416522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addTestClass(SampleTest.class.getName());
22516522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addTestClass(SampleClassSize.class.getName());
226fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
22716522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        JUnitCore testRunner = new JUnitCore();
22816522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        Result result = testRunner.run(request.getRequest());
22916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        Assert.assertEquals(3, result.getRunCount());
23016522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    }
23116522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot
23216522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    /**
23316522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot     * Test that annotation filtering by class works
23416522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot     */
23516522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    @Test
23616522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    public void testAddAnnotationExclusionFilter() {
23716522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        TestRequestBuilder b = new TestRequestBuilder(new PrintStream(new ByteArrayOutputStream()));
23816522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addAnnotationExclusionFilter(SmallTest.class.getName());
23916522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addTestClass(SampleTest.class.getName());
24016522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        b.addTestClass(SampleClassSize.class.getName());
241fc37a0172db7197e6e0702dfa9bfdd6bed1947b1Brett Chabot        TestRequest request = b.build(mInstr, mBundle);
24216522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        JUnitCore testRunner = new JUnitCore();
24316522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        Result result = testRunner.run(request.getRequest());
24416522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot        Assert.assertEquals(1, result.getRunCount());
24516522ab7fbaaa627c2c51cfc1339c2248af6df1bBrett Chabot    }
2465e6ca275201fea0fd0316fb15bc7d0248e224b2cBrett Chabot}
247