@Override public boolean test(@NonNull Connectivity connectivity) throws Exception { for (NetworkInfo.State state : states) { if (connectivity.state() == state) { return true; } } return false; } };
@Override protected void onResume() { super.onResume(); networkDisposable = ReactiveNetwork.observeNetworkConnectivity(getApplicationContext()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(connectivity -> { Log.d(TAG, connectivity.toString()); final NetworkInfo.State state = connectivity.state(); final String name = connectivity.typeName(); tvConnectivityStatus.setText(String.format("state: %s, typeName: %s", state, name)); }); internetDisposable = ReactiveNetwork.observeInternetConnectivity() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(isConnected -> tvInternetStatus.setText(isConnected.toString())); }
@Override public void accept(Connectivity connectivity) throws Exception { // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); } });
@Override public void accept(Connectivity connectivity) throws Exception { // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); } });
@Test public void stateShouldBeEqualToGivenValue() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasState(connectivity.state()); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isTrue(); }
@Test public void observeNetworkConnectivityShouldBeConnectedOnStartWhenNetworkIsAvailable() { // given final Application context = RuntimeEnvironment.application; // when Connectivity connectivity = ReactiveNetwork.observeNetworkConnectivity(context).blockingFirst(); // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); }
@Test public void shouldObserveConnectivity() { // given final Context context = RuntimeEnvironment.application.getApplicationContext(); // when Connectivity connectivity = strategy.observeNetworkConnectivity(context).blockingFirst(); // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); }
@Test public void shouldObserveConnectivity() { // given final NetworkObservingStrategy strategy = new LollipopNetworkObservingStrategy(); final Context context = RuntimeEnvironment.application.getApplicationContext(); // when Connectivity connectivity = strategy.observeNetworkConnectivity(context).blockingFirst(); // then assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.CONNECTED); }
@Test public void shouldCreateConnectivity() { // when Connectivity connectivity = Connectivity.create(); // then assertThat(connectivity).isNotNull(); assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.DISCONNECTED); assertThat(connectivity.detailedState()).isEqualTo(NetworkInfo.DetailedState.IDLE); assertThat(connectivity.type()).isEqualTo(Connectivity.UNKNOWN_TYPE); assertThat(connectivity.subType()).isEqualTo(Connectivity.UNKNOWN_SUB_TYPE); assertThat(connectivity.available()).isFalse(); assertThat(connectivity.failover()).isFalse(); assertThat(connectivity.roaming()).isFalse(); assertThat(connectivity.typeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.subTypeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.reason()).isEmpty(); assertThat(connectivity.extraInfo()).isEmpty(); }
@Test public void stateShouldNotBeEqualToGivenValue() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.DISCONNECTED) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasState(NetworkInfo.State.CONNECTED); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isFalse(); }
@Test public void typeShouldNotBeEqualToGivenValue() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); // note that unknown type is added initially by the ConnectivityPredicate#hasType method final int givenTypes[] = { ConnectivityManager.TYPE_MOBILE, Connectivity.UNKNOWN_TYPE }; // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasType(givenTypes); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isFalse(); }
@Test public void shouldCreateDefaultConnectivityWhenConnectivityManagerIsNull() { // given final Context context = RuntimeEnvironment.application.getApplicationContext(); final ConnectivityManager connectivityManager = null; // when Connectivity connectivity = Connectivity.create(context, connectivityManager); // then assertThat(connectivity.type()).isEqualTo(Connectivity.UNKNOWN_TYPE); assertThat(connectivity.subType()).isEqualTo(Connectivity.UNKNOWN_SUB_TYPE); assertThat(connectivity.state()).isEqualTo(NetworkInfo.State.DISCONNECTED); assertThat(connectivity.detailedState()).isEqualTo(NetworkInfo.DetailedState.IDLE); assertThat(connectivity.available()).isFalse(); assertThat(connectivity.failover()).isFalse(); assertThat(connectivity.roaming()).isFalse(); assertThat(connectivity.typeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.subTypeName()).isEqualTo(TYPE_NAME_NONE); assertThat(connectivity.reason()).isEmpty(); assertThat(connectivity.extraInfo()).isEmpty(); } }
@Test public void stateShouldBeEqualToOneOfGivenMultipleValues() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTING) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); final NetworkInfo.State states[] = { NetworkInfo.State.CONNECTED, NetworkInfo.State.CONNECTING }; // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasState(states); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isTrue(); }
@Test public void typeShouldBeEqualToGivenValue() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .typeName(TYPE_NAME_WIFI) .build(); // note that unknown type is added initially by the ConnectivityPredicate#hasType method final int givenTypes[] = { connectivity.type(), Connectivity.UNKNOWN_TYPE }; // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasType(givenTypes); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isTrue(); }
@Test public void typeShouldBeEqualToOneOfGivenMultipleValues() throws Exception { // given final Connectivity connectivity = Connectivity.state(NetworkInfo.State.CONNECTING) .type(ConnectivityManager.TYPE_MOBILE) .typeName(TYPE_NAME_MOBILE) .build(); // note that unknown type is added initially by the ConnectivityPredicate#hasType method final int givenTypes[] = { ConnectivityManager.TYPE_WIFI, ConnectivityManager.TYPE_MOBILE, Connectivity.UNKNOWN_TYPE }; // when final Predicate<Connectivity> equalTo = ConnectivityPredicate.hasType(givenTypes); final Boolean shouldBeEqualToGivenStatus = equalTo.test(connectivity); // then assertThat(shouldBeEqualToGivenStatus).isTrue(); }
@Test public void connectivityShouldNotBeEqualToAnotherOne() { Connectivity connectivityOne = Connectivity.state(NetworkInfo.State.CONNECTED) .detailedState(NetworkInfo.DetailedState.CONNECTED) .type(ConnectivityManager.TYPE_WIFI) .build(); Connectivity connectivityTwo = Connectivity.state(NetworkInfo.State.DISCONNECTED) .detailedState(NetworkInfo.DetailedState.DISCONNECTED) .type(ConnectivityManager.TYPE_MOBILE)