Convert to Mockito: SystemUpdaterDeviceFlasherTest
Bug: b/186588563
Test: unit tests
Change-Id: Ia6976637334c32d5622f955aabd080ae1bfd1396
diff --git a/javatests/com/android/tradefed/targetprep/SystemUpdaterDeviceFlasherTest.java b/javatests/com/android/tradefed/targetprep/SystemUpdaterDeviceFlasherTest.java
index 46e5492..a5c472f 100644
--- a/javatests/com/android/tradefed/targetprep/SystemUpdaterDeviceFlasherTest.java
+++ b/javatests/com/android/tradefed/targetprep/SystemUpdaterDeviceFlasherTest.java
@@ -16,18 +16,31 @@
package com.android.tradefed.targetprep;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
import com.android.tradefed.build.IDeviceBuildInfo;
import com.android.tradefed.device.DeviceNotAvailableException;
import com.android.tradefed.device.ITestDevice;
-import junit.framework.TestCase;
-
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.InOrder;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
import java.io.File;
-public class SystemUpdaterDeviceFlasherTest extends TestCase {
+@RunWith(JUnit4.class)
+public class SystemUpdaterDeviceFlasherTest {
private static final String A_BUILD_ID = "1";
@@ -35,72 +48,80 @@
private SystemUpdaterDeviceFlasher mFlasher;
- private IMocksControl mControl;
+ @Mock ITestDevice mMockDevice;
+ @Mock IDeviceBuildInfo mMockDeviceBuild;
- private IDeviceBuildInfo mMockDeviceBuild;
+ private InOrder mInOrder;
- private ITestDevice mMockDevice;
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mInOrder = inOrder(mMockDevice, mMockDeviceBuild);
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- ITestsZipInstaller mockZipInstaller = EasyMock.createMock(ITestsZipInstaller.class);
+ ITestsZipInstaller mockZipInstaller = mock(ITestsZipInstaller.class);
mFlasher = new SystemUpdaterDeviceFlasher();
mFlasher.setTestsZipInstaller(mockZipInstaller);
- mControl = EasyMock.createStrictControl();
- mControl.checkOrder(false);
- mMockDevice = mControl.createMock(ITestDevice.class);
- mMockDeviceBuild = mControl.createMock(IDeviceBuildInfo.class);
- EasyMock.expect(mMockDevice.getSerialNumber()).andStubReturn(TEST_STRING);
- EasyMock.expect(mMockDevice.getProductType()).andStubReturn(TEST_STRING);
- EasyMock.expect(mMockDevice.getDeviceDescriptor()).andStubReturn(null);
+ when(mMockDevice.getSerialNumber()).thenReturn(TEST_STRING);
+ when(mMockDevice.getProductType()).thenReturn(TEST_STRING);
+ when(mMockDevice.getDeviceDescriptor()).thenReturn(null);
}
+ @Test
public void testFlash() throws DeviceNotAvailableException, TargetSetupError {
yieldDifferentBuilds(true);
File fakeImage = new File("fakeImageFile");
- mControl.checkOrder(true);
- EasyMock.expect(mMockDeviceBuild.getOtaPackageFile()).andReturn(fakeImage);
- EasyMock.expect(mMockDevice.pushFile(fakeImage, "/cache/update.zip")).andReturn(true);
- String commandsRegex = "echo +--update_package +> +/cache/recovery/command +&& *"
- + "echo +/cache/update.zip +>> +/cache/recovery/command";
- EasyMock.expect(mMockDevice.executeShellCommand(EasyMock.matches(commandsRegex))).andReturn(
- "foo");
- mMockDevice.rebootIntoRecovery();
- mMockDevice.waitForDeviceAvailable();
- mMockDevice.reboot();
+ when(mMockDeviceBuild.getOtaPackageFile()).thenReturn(fakeImage);
+ when(mMockDevice.pushFile(fakeImage, "/cache/update.zip")).thenReturn(true);
+ String commandsRegex =
+ "echo +--update_package +> +/cache/recovery/command +&& *"
+ + "echo +/cache/update.zip +>> +/cache/recovery/command";
+ when(mMockDevice.executeShellCommand(Mockito.matches(commandsRegex))).thenReturn("foo");
- mControl.replay();
mFlasher.flash(mMockDevice, mMockDeviceBuild);
- mControl.verify();
+
+ mInOrder.verify(mMockDeviceBuild).getOtaPackageFile();
+ mInOrder.verify(mMockDevice)
+ .pushFile(Mockito.eq(fakeImage), Mockito.eq("/cache/update.zip"));
+ mInOrder.verify(mMockDevice).executeShellCommand(Mockito.matches(commandsRegex));
+ mInOrder.verify(mMockDevice).rebootIntoRecovery();
+ mInOrder.verify(mMockDevice).waitForDeviceAvailable();
+ mInOrder.verify(mMockDevice).reboot();
}
+ @Test
public void testFlash_noOta() throws DeviceNotAvailableException {
yieldDifferentBuilds(true);
- EasyMock.expect(mMockDeviceBuild.getOtaPackageFile()).andReturn(null);
+ when(mMockDeviceBuild.getOtaPackageFile()).thenReturn(null);
- mControl.replay();
try {
mFlasher.flash(mMockDevice, mMockDeviceBuild);
- fail("didn't throw expected exception when OTA is missing: "
- + TargetSetupError.class.getSimpleName());
+ fail(
+ "didn't throw expected exception when OTA is missing: "
+ + TargetSetupError.class.getSimpleName());
} catch (TargetSetupError e) {
assertTrue(true);
} finally {
- mControl.verify();
+ verify(mMockDeviceBuild).getOtaPackageFile();
}
}
+ @Test
public void testFlashSameBuild() throws DeviceNotAvailableException, TargetSetupError {
yieldDifferentBuilds(false);
- mControl.replay();
mFlasher.flash(mMockDevice, mMockDeviceBuild);
- mControl.verify();
+
+ mInOrder.verify(mMockDeviceBuild, times(0)).getOtaPackageFile();
+ mInOrder.verify(mMockDevice, times(0))
+ .pushFile(Mockito.any(), Mockito.eq("/cache/update.zip"));
+ mInOrder.verify(mMockDevice, times(0)).executeShellCommand(Mockito.any());
+ mInOrder.verify(mMockDevice, times(0)).rebootIntoRecovery();
+ mInOrder.verify(mMockDevice, times(0)).waitForDeviceAvailable();
+ mInOrder.verify(mMockDevice, times(0)).reboot();
}
private void yieldDifferentBuilds(boolean different) throws DeviceNotAvailableException {
- EasyMock.expect(mMockDevice.getBuildId()).andReturn(A_BUILD_ID).anyTimes();
- EasyMock.expect(mMockDeviceBuild.getDeviceBuildId()).andReturn(
- (different ? A_BUILD_ID + 1 : A_BUILD_ID)).anyTimes();
+ when(mMockDevice.getBuildId()).thenReturn(A_BUILD_ID);
+ when(mMockDeviceBuild.getDeviceBuildId())
+ .thenReturn((different ? A_BUILD_ID + 1 : A_BUILD_ID));
}
}