package org.robolectric.shadows;
import android.net.NetworkInfo;
import org.robolectric.Shadows;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
@Implements(NetworkInfo.class)
public class ShadowNetworkInfo {
private boolean isAvailable;
private boolean isConnected;
private int connectionType;
private int connectionSubType;
private NetworkInfo.DetailedState detailedState;
public static void __staticInitializer__() {
}
public static NetworkInfo newInstance(NetworkInfo.DetailedState detailedState, int type, int subType, boolean isAvailable, boolean isConnected) {
NetworkInfo networkInfo = Shadow.newInstanceOf(NetworkInfo.class);
final ShadowNetworkInfo info = Shadows.shadowOf(networkInfo);
info.setConnectionType(type);
info.setSubType(subType);
info.setDetailedState(detailedState);
info.setAvailableStatus(isAvailable);
info.setConnectionStatus(isConnected);
return networkInfo;
}
@Implementation
public boolean isConnected() {
return isConnected;
}
@Implementation
public boolean isConnectedOrConnecting() {
return isConnected;
}
@Implementation
public NetworkInfo.State getState() {
return isConnected ? NetworkInfo.State.CONNECTED :
NetworkInfo.State.DISCONNECTED;
}
@Implementation
public NetworkInfo.DetailedState getDetailedState() {
return detailedState;
}
@Implementation
public int getType(){
return connectionType;
}
@Implementation
public int getSubtype() {
return connectionSubType;
}
@Implementation
public boolean isAvailable() {
return isAvailable;
}
/**
* Sets up the return value of {@link #isAvailable()}.
*
* @param isAvailable the value that {@link #isAvailable()} will return.
*/
public void setAvailableStatus(boolean isAvailable) {
this.isAvailable = isAvailable;
}
/**
* Sets up the return value of {@link #isConnectedOrConnecting()} and {@link #isConnected()}.
*
* @param isConnected the value that {@link #isConnectedOrConnecting()} and {@link #isConnected()} will return.
*/
public void setConnectionStatus(boolean isConnected) {
this.isConnected = isConnected;
}
/**
* Sets up the return value of {@link #getType()}.
*
* @param connectionType the value that {@link #getType()} will return.
*/
public void setConnectionType(int connectionType){
this.connectionType = connectionType;
}
public void setSubType(int subType) {
this.connectionSubType = subType;
}
public void setDetailedState(NetworkInfo.DetailedState detailedState) {
this.detailedState = detailedState;
}
}