С незапамятных времен я пытаюсь написать свой первый тест, который, кажется, нуждается в издевательствах. Я понятия не имею, как написать такой тест.
Я пытался смоделировать все классы, которые я использую в функциях, которые должны быть проверены.
class NetworkConnection {
/**
* Checks if the phone is connected to a network
* @return true, if the phone is connected to a network
*/
static boolean isConnectedToNetwork(Context context, String ssid) {
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm != null ? cm.getActiveNetworkInfo() : null;
boolean internetConnection = (activeNetwork != null) && activeNetwork.isConnectedOrConnecting();
return internetConnection && isConnectedToMyNetwork(context, ssid);
}
static boolean isConnectedToMyNetwork(Context context, String ssid) {
return getWifiName(context).equals(ssid);
}
private static String getWifiName(Context context) {
WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if(manager != null) {
if (manager.isWifiEnabled()) {
WifiInfo wifiInfo = manager.getConnectionInfo();
if (wifiInfo != null) {
if (WifiInfo.getDetailedStateOf(wifiInfo.getSupplicantState()) == NetworkInfo.DetailedState.CONNECTED) {
return wifiInfo.getSSID();
}
}
}
}
return "";
}
}
Функция isConnectedToNetwork () должна возвращать true, только если пользователь подключен к сети с определенным именем.
Спасибо за вашу помощь!