| /* |
| * Copyright 2021 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| @file:Suppress("UnstableApiUsage") |
| |
| package androidx.build.lint |
| |
| import org.junit.Test |
| import org.junit.runner.RunWith |
| import org.junit.runners.JUnit4 |
| |
| @RunWith(JUnit4::class) |
| class BanVisibleForTestingParamsTest : |
| AbstractLintDetectorTest( |
| useDetector = BanVisibleForTestingParams(), |
| useIssues = listOf(BanVisibleForTestingParams.ISSUE), |
| stubs = arrayOf(Stubs.VisibleForTesting), |
| ) { |
| |
| @Test |
| fun `Detection of @VisibleForTesting usage in Java sources`() { |
| val input = |
| arrayOf( |
| javaSample("androidx.VisibleForTestingUsageJava"), |
| ) |
| |
| val expected = |
| """ |
| src/androidx/VisibleForTestingUsageJava.java:23: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageJava.java:26: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageJava.java:29: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageJava.java:32: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.NONE) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 4 errors, 0 warnings |
| """ |
| .trimIndent() |
| |
| val fixDiffs = |
| """ |
| Fix for src/androidx/VisibleForTestingUsageJava.java line 23: Remove non-default `otherwise` value: |
| @@ -23 +23 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) |
| + @VisibleForTesting |
| Fix for src/androidx/VisibleForTestingUsageJava.java line 26: Remove @VisibleForTesting annotation: |
| @@ -26 +26 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) |
| Fix for src/androidx/VisibleForTestingUsageJava.java line 29: Remove @VisibleForTesting annotation: |
| @@ -29 +29 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) |
| Fix for src/androidx/VisibleForTestingUsageJava.java line 32: Remove non-default `otherwise` value: |
| @@ -32 +32 |
| - @VisibleForTesting(otherwise = VisibleForTesting.NONE) |
| + @VisibleForTesting |
| """ |
| .trimIndent() |
| |
| check(*input).expect(expected).expectFixDiffs(fixDiffs) |
| } |
| |
| @Test |
| fun `Detection of @VisibleForTesting usage in Kotlin sources`() { |
| val input = |
| arrayOf( |
| ktSample("androidx.VisibleForTestingUsageKotlin"), |
| ) |
| |
| val expected = |
| """ |
| src/androidx/VisibleForTestingUsageKotlin.kt:26: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun testMethodPrivate() {} |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:28: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.Companion.PRIVATE) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:31: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(VisibleForTesting.PRIVATE) fun testMethodValuePrivate() {} |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:33: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:36: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) fun testMethodProtected() {} |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:38: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @VisibleForTesting(otherwise = VisibleForTesting.NONE) fun testMethodPackageNone() {} |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| src/androidx/VisibleForTestingUsageKotlin.kt:42: Error: Found non-default otherwise value for @VisibleForTesting [UsesNonDefaultVisibleForTesting] |
| @get:VisibleForTesting(NONE) val testPropertyGet = "test" |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 7 errors, 0 warnings |
| """ |
| .trimIndent() |
| |
| val fixDiffs = |
| """ |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 26: Remove non-default `otherwise` value: |
| @@ -26 +26 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun testMethodPrivate() {} |
| + @VisibleForTesting fun testMethodPrivate() {} |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 28: Remove non-default `otherwise` value: |
| @@ -28 +28 |
| - @VisibleForTesting(otherwise = VisibleForTesting.Companion.PRIVATE) |
| + @VisibleForTesting |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 31: Remove non-default `otherwise` value: |
| @@ -31 +31 |
| - @VisibleForTesting(VisibleForTesting.PRIVATE) fun testMethodValuePrivate() {} |
| + @VisibleForTesting fun testMethodValuePrivate() {} |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 33: Remove @VisibleForTesting annotation: |
| @@ -33 +33 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 36: Remove @VisibleForTesting annotation: |
| @@ -36 +36 |
| - @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) fun testMethodProtected() {} |
| + fun testMethodProtected() {} |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 38: Remove non-default `otherwise` value: |
| @@ -38 +38 |
| - @VisibleForTesting(otherwise = VisibleForTesting.NONE) fun testMethodPackageNone() {} |
| + @VisibleForTesting fun testMethodPackageNone() {} |
| Fix for src/androidx/VisibleForTestingUsageKotlin.kt line 42: Remove non-default `otherwise` value: |
| @@ -42 +42 |
| - @get:VisibleForTesting(NONE) val testPropertyGet = "test" |
| + @get:VisibleForTesting val testPropertyGet = "test" |
| """ |
| .trimIndent() |
| |
| check(*input).expect(expected).expectFixDiffs(fixDiffs) |
| } |
| } |