package com.doist.jobschedulercompat.util;

import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;

import android.net.NetworkInfo;

import static org.robolectric.Shadows.shadowOf;

@Implements(NetworkInfo.class)
public class ShadowNetworkInfo extends org.robolectric.shadows.ShadowNetworkInfo {
    private boolean isRoaming;

    public static NetworkInfo newInstance(
            NetworkInfo.DetailedState detailedState, int type, int subType, boolean isAvailable, boolean isConnected,
            boolean isRoaming) {
        NetworkInfo networkInfo = org.robolectric.shadows.ShadowNetworkInfo.newInstance(
                detailedState, type, subType, isAvailable,
                isConnected ? NetworkInfo.State.CONNECTED : NetworkInfo.State.DISCONNECTED);
        ShadowNetworkInfo info = (ShadowNetworkInfo) shadowOf(networkInfo);
        info.setRoaming(isRoaming);
        return networkInfo;
    }

    public ShadowNetworkInfo() {
    }

    @Implementation
    public boolean isRoaming() {
        return isRoaming;
    }

    public void setRoaming(boolean isRoaming) {
        this.isRoaming = isRoaming;
    }
}