From b8f05956eddab74c4d6eb2ac9fab63d9bbc08b90 Mon Sep 17 00:00:00 2001 From: Jeremy Goldman Date: Tue, 23 Feb 2021 16:33:33 +0800 Subject: [PATCH] HardwareRevisionPreferenceControllerTest converted to JUnit. Diff: https://diff.googleplex.com/#key=Snb7bwFLO81L Test: atest -c HardwareRevisionPreferenceControllerTest Change-Id: I85e8fb02f5ac213f04912026e74dfaae92a2decd --- ...dwareRevisionPreferenceControllerTest.java | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) rename tests/{robotests => unit}/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java (53%) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java similarity index 53% rename from tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java rename to tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java index d705b646d3f..fc1407f3c39 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/hardwareinfo/HardwareRevisionPreferenceControllerTest.java @@ -11,7 +11,7 @@ * 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 + * limitations under the License. */ package com.android.settings.deviceinfo.hardwareinfo; @@ -20,42 +20,54 @@ import static android.content.Context.CLIPBOARD_SERVICE; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; + +import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; +import android.os.Looper; import android.os.SystemProperties; +import androidx.test.annotation.UiThreadTest; +import androidx.test.core.app.ApplicationProvider; +import androidx.test.ext.junit.runners.AndroidJUnit4; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; +import org.mockito.ArgumentCaptor; -@RunWith(RobolectricTestRunner.class) +@RunWith(AndroidJUnit4.class) public class HardwareRevisionPreferenceControllerTest { private Context mContext; private HardwareRevisionPreferenceController mController; + private ClipboardManager mClipboardManager; @Before public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + if (Looper.myLooper() == null) { + Looper.prepare(); + } + mContext = spy(ApplicationProvider.getApplicationContext()); + mClipboardManager = (ClipboardManager) spy(mContext.getSystemService(CLIPBOARD_SERVICE)); + doReturn(mClipboardManager).when(mContext).getSystemService(CLIPBOARD_SERVICE); mController = new HardwareRevisionPreferenceController(mContext, "hardware_info_device_revision"); } @Test + @UiThreadTest public void copy_shouldCopyHardwareRevisionToClipboard() { - final String fakeHardwareVer = "FakeVer1.0"; - SystemProperties.set("ro.boot.hardware.revision", fakeHardwareVer); + ArgumentCaptor captor = ArgumentCaptor.forClass(ClipData.class); + doNothing().when(mClipboardManager).setPrimaryClip(captor.capture()); mController.copy(); - final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService( - CLIPBOARD_SERVICE); - final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText(); - - assertThat(data.toString()).isEqualTo(fakeHardwareVer); + final ClipData data = captor.getValue(); + final String hardwareVer = SystemProperties.get("ro.boot.hardware.revision"); + assertThat(data.getItemAt(0).getText().toString()).isEqualTo(hardwareVer); } -} \ No newline at end of file +}