package com.f2prateek.rx.receivers.battery; import android.app.Application; import android.content.Intent; import android.os.BatteryManager; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import rx.observers.TestSubscriber; @RunWith(RobolectricTestRunner.class) // public class RxBatteryManagerTest { @Test public void batteryStateChanges() { Application application = RuntimeEnvironment.application; TestSubscriber<BatteryState> o = new TestSubscriber<>(); RxBatteryManager.batteryChanges(application).subscribe(o); o.assertValues(); Intent intent1 = new Intent(Intent.ACTION_BATTERY_CHANGED) // .putExtra(BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_COLD) .putExtra(BatteryManager.EXTRA_ICON_SMALL, 0x3def2) .putExtra(BatteryManager.EXTRA_LEVEL, 10) .putExtra(BatteryManager.EXTRA_PLUGGED, 0) .putExtra(BatteryManager.EXTRA_PRESENT, true) .putExtra(BatteryManager.EXTRA_SCALE, 100) .putExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_CHARGING) .putExtra(BatteryManager.EXTRA_TECHNOLOGY, "unknown") .putExtra(BatteryManager.EXTRA_TEMPERATURE, 40) .putExtra(BatteryManager.EXTRA_VOLTAGE, 10000); application.sendBroadcast(intent1); BatteryState event1 = BatteryState.create(BatteryHealth.COLD, 0x3def2, 10, 0, true, 100, BatteryStatus.CHARGING, "unknown", 40, 10000); o.assertValues(event1); } }