package com.nutomic.syncthingandroid.test.syncthing; import android.content.Intent; import android.os.BatteryManager; import android.support.test.InstrumentationRegistry; import android.support.test.rule.ServiceTestRule; import com.nutomic.syncthingandroid.service.DeviceStateHolder; import com.nutomic.syncthingandroid.test.MockContext; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; public class DeviceStateHolderTest { @Rule public final ServiceTestRule mServiceRule = new ServiceTestRule(); private DeviceStateHolder mReceiver; private MockContext mContext; @Before public void setUp() throws Exception { mReceiver = new DeviceStateHolder(InstrumentationRegistry.getTargetContext()); mContext = new MockContext(null); } @Test public void testIsCharging() { Intent i = new Intent(); i.putExtra(DeviceStateHolder.EXTRA_IS_CHARGING, false); mReceiver.update(i); Assert.assertFalse(mReceiver.isCharging()); i.putExtra(DeviceStateHolder.EXTRA_IS_CHARGING, true); mReceiver.update(i); Assert.assertTrue(mReceiver.isCharging()); } @Test public void testWifiConnected() { Intent i = new Intent(); i.putExtra(DeviceStateHolder.EXTRA_HAS_WIFI, false); mReceiver.update(i); Assert.assertFalse(mReceiver.isWifiConnected()); i.putExtra(DeviceStateHolder.EXTRA_HAS_WIFI, true); mReceiver.update(i); Assert.assertTrue(mReceiver.isWifiConnected()); } @Test public void testonReceiveInitialChargingState() { Intent i = new Intent(); mReceiver.onReceive(mContext, i); Assert.assertFalse(mReceiver.isCharging()); Assert.assertEquals(mContext.getLastUnregistered(), mReceiver); i.putExtra(BatteryManager.EXTRA_PLUGGED, 0); mReceiver.onReceive(mContext, i); Assert.assertFalse(mReceiver.isCharging()); i.putExtra(BatteryManager.EXTRA_PLUGGED, 1); mReceiver.onReceive(mContext, i); Assert.assertTrue(mReceiver.isCharging()); } }