diff options
Diffstat (limited to 'base/test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java')
-rw-r--r-- | base/test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/base/test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java b/base/test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java new file mode 100644 index 0000000000..170ff69eaf --- /dev/null +++ b/base/test/android/junit/src/org/chromium/base/test/params/ParameterizedRunnerTest.java @@ -0,0 +1,108 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.base.test.params; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.BlockJUnit4ClassRunner; + +import org.chromium.base.test.params.ParameterAnnotations.ClassParameter; +import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate; +import org.chromium.base.test.params.ParameterizedRunner.IllegalParameterArgumentException; + +import java.util.ArrayList; +import java.util.List; + +/** + * Test for org.chromium.base.test.params.ParameterizedRunner + */ +@RunWith(BlockJUnit4ClassRunner.class) +public class ParameterizedRunnerTest { + @UseRunnerDelegate(BlockJUnit4RunnerDelegate.class) + public static class BadTestClassWithMoreThanOneConstructor { + @ClassParameter + static List<ParameterSet> sClassParams = new ArrayList<>(); + + public BadTestClassWithMoreThanOneConstructor() {} + + public BadTestClassWithMoreThanOneConstructor(String x) {} + } + + @UseRunnerDelegate(BlockJUnit4RunnerDelegate.class) + public static class BadTestClassWithNonListParameters { + @ClassParameter + static String[] sMethodParamA = {"1", "2"}; + + @Test + public void test() {} + } + + @UseRunnerDelegate(BlockJUnit4RunnerDelegate.class) + public static class BadTestClassWithoutNeedForParameterization { + @Test + public void test() {} + } + + @UseRunnerDelegate(BlockJUnit4RunnerDelegate.class) + public static class BadTestClassWithNonStaticParameterSetList { + @ClassParameter + public List<ParameterSet> mClassParams = new ArrayList<>(); + + @Test + public void test() {} + } + + @UseRunnerDelegate(BlockJUnit4RunnerDelegate.class) + public static class BadTestClassWithMultipleClassParameter { + @ClassParameter + private static List<ParameterSet> sParamA = new ArrayList<>(); + + @ClassParameter + private static List<ParameterSet> sParamB = new ArrayList<>(); + } + + @Test(expected = ParameterizedRunner.IllegalParameterArgumentException.class) + public void testEmptyParameterSet() { + List<ParameterSet> paramList = new ArrayList<>(); + paramList.add(new ParameterSet()); + ParameterizedRunner.validateWidth(paramList); + } + + @Test(expected = ParameterizedRunner.IllegalParameterArgumentException.class) + public void testUnequalWidthParameterSetList() { + List<ParameterSet> paramList = new ArrayList<>(); + paramList.add(new ParameterSet().value(1, 2)); + paramList.add(new ParameterSet().value(3, 4, 5)); + ParameterizedRunner.validateWidth(paramList); + } + + @Test(expected = ParameterizedRunner.IllegalParameterArgumentException.class) + public void testUnequalWidthParameterSetListWithNull() { + List<ParameterSet> paramList = new ArrayList<>(); + paramList.add(new ParameterSet().value(null)); + paramList.add(new ParameterSet().value(1, 2)); + ParameterizedRunner.validateWidth(paramList); + } + + @Test(expected = IllegalArgumentException.class) + public void testBadClassWithNonListParameters() throws Throwable { + new ParameterizedRunner(BadTestClassWithNonListParameters.class); + } + + @Test(expected = IllegalParameterArgumentException.class) + public void testBadClassWithNonStaticParameterSetList() throws Throwable { + new ParameterizedRunner(BadTestClassWithNonStaticParameterSetList.class); + } + + @Test(expected = IllegalArgumentException.class) + public void testBadClassWithoutNeedForParameterization() throws Throwable { + new ParameterizedRunner(BadTestClassWithoutNeedForParameterization.class); + } + + @Test(expected = Exception.class) + public void testBadClassWithMoreThanOneConstructor() throws Throwable { + new ParameterizedRunner(BadTestClassWithMoreThanOneConstructor.class); + } +} |