• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (C) 2023 The Android Open Source Project
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 
17 package com.android.modules.testing.utils;
18 
19 import static com.android.modules.testing.utils.FlaggedApiRule.UsesFlaggedApi;
20 import static org.junit.Assert.assertTrue;
21 
22 import org.junit.runners.Parameterized;
23 import org.junit.Test;
24 import org.junit.runner.RunWith;
25 import org.junit.Rule;
26 
27 @RunWith(Parameterized.class)
28 public class FlaggedApiRuleTest {
29     @Rule
30     @Parameterized.Parameter
31     public FlaggedApiRule mFlaggedApiRule;
32 
33     @Parameterized.Parameters
data()34     public static Object[] data() {
35         return new FlaggedApiRule[]{
36             new FlaggedApiRule.DoNothingRule(),
37             new FlaggedApiRule.SkipTestsAnnotatedWithUsesFlaggedApiRule(),
38         };
39     }
40 
41     @Test
42     @UsesFlaggedApi
testIsSkippedIfRuleSaysSo()43     public void testIsSkippedIfRuleSaysSo() {
44         // This @Test will be called twice, with two different FlaggedApiRule objects (see the
45         // @Parameterized.Parameters annotated method above). One of the Rules will make JUnit skip
46         // this @Test: assert this is the case by checking the current @Rule when the method is
47         // actually called.
48         assertTrue(mFlaggedApiRule instanceof FlaggedApiRule.DoNothingRule);
49     }
50 }
51