@Override public void onReceive(Context context, Intent intent) { // We need to start WiFi scan after receiving an Intent // in order to get update with fresh data as soon as possible WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wifiManager.startScan(); onPostReceive(); }
public void onPostReceive() { postFromAnyThread(new WifiSignalStrengthChanged(logger, context)); } }
@Before public void setUp() throws Exception { this.busWrapper = new OttoBusWrapper(new Bus(ThreadEnforcer.ANY)); Logger logger = Mockito.mock(Logger.class); Context context = Mockito.mock(Context.class); this.receiver = new WifiSignalStrengthChangeReceiver(busWrapper, logger, context); }
/** * Initializes NetworkEvents object. * * @param context Android context * @param busWrapper Wrapper fo event bus * @param logger message logger (NetworkEventsLogger logs messages to LogCat) */ public NetworkEvents(Context context, BusWrapper busWrapper, Logger logger) { checkNotNull(context, "context == null"); checkNotNull(busWrapper, "busWrapper == null"); checkNotNull(logger, "logger == null"); this.context = context; this.onlineChecker = new OnlineCheckerImpl(context); this.networkConnectionChangeReceiver = new NetworkConnectionChangeReceiver(busWrapper, logger, context, onlineChecker); this.internetConnectionChangeReceiver = new InternetConnectionChangeReceiver(busWrapper, logger, context); this.wifiSignalStrengthChangeReceiver = new WifiSignalStrengthChangeReceiver(busWrapper, logger, context); }
@Test public void testShouldReceiveAnEventWhenWifiSignalStrengthChanged() throws InterruptedException { // given final List<WifiSignalStrengthChanged> connectivityChangeEvents = new ArrayList<>(); Object eventCatcher = getWifiEventCatcher(connectivityChangeEvents); busWrapper.register(eventCatcher); // when receiver.onPostReceive(); Thread.sleep(2000); // wait a while for async operation // then assertThat(connectivityChangeEvents).isNotEmpty(); busWrapper.unregister(eventCatcher); }