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;
|
package com.android.settings.deviceinfo.hardwareinfo;
|
||||||
|
|
||||||
|
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
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.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.mockito.ArgumentCaptor;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class SerialNumberPreferenceControllerTest {
|
public class SerialNumberPreferenceControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private SerialNumberPreferenceController mController;
|
private SerialNumberPreferenceController mController;
|
||||||
|
private ClipboardManager mClipboardManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
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");
|
mController = new SerialNumberPreferenceController(mContext, "test");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@UiThreadTest
|
||||||
public void copy_shouldPutSerialNumberToClipBoard() {
|
public void copy_shouldPutSerialNumberToClipBoard() {
|
||||||
|
ArgumentCaptor<ClipData> captor = ArgumentCaptor.forClass(ClipData.class);
|
||||||
|
doNothing().when(mClipboardManager).setPrimaryClip(captor.capture());
|
||||||
|
|
||||||
mController.copy();
|
mController.copy();
|
||||||
|
|
||||||
final ClipboardManager clipboardManager = mContext.getSystemService(ClipboardManager.class);
|
final ClipData data = captor.getValue();
|
||||||
final ClipData data = clipboardManager.getPrimaryClip();
|
|
||||||
|
|
||||||
assertThat(data.getItemAt(0).getText().toString()).contains(Build.getSerial());
|
assertThat(data.getItemAt(0).getText().toString()).contains(Build.getSerial());
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user