SerialNumberPreferenceControllerTest converted to JUnit
The biggest difference is that an argumentcaptor is used for the ClipboardManager, rather than inspecting the primary clip. Diff: https://diff.googleplex.com/#key=X1WHfEzPhfuY Test: atest -c SerialNumberPreferenceControllerTest Change-Id: I84c2abd0d53dde22c90b0967f6884bc590181f7c
This commit is contained in:
@@ -16,39 +16,56 @@
|
||||
|
||||
package com.android.settings.deviceinfo.hardwareinfo;
|
||||
|
||||
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.Build;
|
||||
import android.os.Looper;
|
||||
|
||||
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.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class SerialNumberPreferenceControllerTest {
|
||||
|
||||
private Context mContext;
|
||||
private SerialNumberPreferenceController mController;
|
||||
private ClipboardManager mClipboardManager;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
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 SerialNumberPreferenceController(mContext, "test");
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void copy_shouldPutSerialNumberToClipBoard() {
|
||||
ArgumentCaptor<ClipData> captor = ArgumentCaptor.forClass(ClipData.class);
|
||||
doNothing().when(mClipboardManager).setPrimaryClip(captor.capture());
|
||||
|
||||
mController.copy();
|
||||
|
||||
final ClipboardManager clipboardManager = mContext.getSystemService(ClipboardManager.class);
|
||||
final ClipData data = clipboardManager.getPrimaryClip();
|
||||
|
||||
final ClipData data = captor.getValue();
|
||||
assertThat(data.getItemAt(0).getText().toString()).contains(Build.getSerial());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user