Tesis 1.0.0
Loading...
Searching...
No Matches
NetworkUtilsTest.java
Go to the documentation of this file.
1package com.example.food_front.utils;
2
3import org.junit.Test;
4import org.junit.runner.RunWith;
5import org.mockito.Mock;
6import org.mockito.junit.MockitoJUnitRunner;
7import android.content.Context;
8import android.net.ConnectivityManager;
9import android.net.NetworkInfo;
10
11import static org.junit.Assert.*;
12import static org.mockito.Mockito.when;
13
17@RunWith(MockitoJUnitRunner.class)
18public class NetworkUtilsTest {
19
20 @Mock
21 Context mockContext;
22
23 @Mock
24 ConnectivityManager mockConnectivityManager;
25
26 @Mock
27 NetworkInfo mockNetworkInfo;
28
29 @Test
31 // Configurar mocks
32 when(mockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mockConnectivityManager);
33 when(mockConnectivityManager.getActiveNetworkInfo()).thenReturn(mockNetworkInfo);
34 when(mockNetworkInfo.isConnected()).thenReturn(true);
35
36 // Ejecutar el método que queremos probar
37 boolean result = NetworkUtils.isNetworkAvailable(mockContext);
38
39 // Verificar que devuelve true cuando hay una red conectada
40 assertTrue(result);
41 }
42
43 @Test
45 // Configurar mocks
46 when(mockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mockConnectivityManager);
47 when(mockConnectivityManager.getActiveNetworkInfo()).thenReturn(mockNetworkInfo);
48 when(mockNetworkInfo.isConnected()).thenReturn(false);
49
50 // Ejecutar el método que queremos probar
51 boolean result = NetworkUtils.isNetworkAvailable(mockContext);
52
53 // Verificar que devuelve false cuando la red no está conectada
54 assertFalse(result);
55 }
56
57 @Test
59 // Configurar mocks
60 when(mockContext.getSystemService(Context.CONNECTIVITY_SERVICE)).thenReturn(mockConnectivityManager);
61 when(mockConnectivityManager.getActiveNetworkInfo()).thenReturn(null);
62
63 // Ejecutar el método que queremos probar
64 boolean result = NetworkUtils.isNetworkAvailable(mockContext);
65
66 // Verificar que devuelve false cuando no hay información de red
67 assertFalse(result);
68 }
69
70 @Test
72 // Esta prueba verifica que el método respeta el tiempo de espera especificado
73 long startTime = System.currentTimeMillis();
74
75 // Intentar conectarse a una URL que no responde, con un timeout pequeño
76 boolean result = NetworkUtils.checkUrlAvailability("non.existent.url.example.com", 1000);
77
78 long endTime = System.currentTimeMillis();
79 long duration = endTime - startTime;
80
81 // Verificar que devuelve false para una URL que no existe
82 assertFalse(result);
83
84 // Verificar que respeta el timeout aproximadamente (con un margen de 500ms)
85 assertTrue("El tiempo de espera no fue respetado", duration < 1500);
86 }
87}
static boolean checkUrlAvailability(final String urlString, int timeout)
static boolean isNetworkAvailable(Context context)