Tesis 1.0.0
Loading...
Searching...
No Matches
DiagnosticUtilTest.java
Go to the documentation of this file.
1package com.example.food_front.utils;
2
3import android.content.Context;
4import android.content.SharedPreferences;
5
6import org.junit.Before;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9import org.mockito.Mock;
10import org.mockito.junit.MockitoJUnitRunner;
11
12import static org.junit.Assert.*;
13import static org.mockito.ArgumentMatchers.anyInt;
14import static org.mockito.ArgumentMatchers.anyString;
15import static org.mockito.ArgumentMatchers.eq;
16import static org.mockito.Mockito.verify;
17import static org.mockito.Mockito.when;
18
22@RunWith(MockitoJUnitRunner.class)
23public class DiagnosticUtilTest {
24
25 @Mock
26 Context mockContext;
27
28 @Mock
29 SharedPreferences mockSharedPreferences;
30
31 @Mock
32 SharedPreferences.Editor mockEditor;
33
34 @Before
35 public void setUp() {
36 // Configurar el SharedPreferences mock
37 when(mockContext.getSharedPreferences(anyString(), anyInt())).thenReturn(mockSharedPreferences);
38 when(mockSharedPreferences.edit()).thenReturn(mockEditor);
39 when(mockEditor.putString(anyString(), anyString())).thenReturn(mockEditor);
40 }
41
42 @Test
44 // Configurar el paquete y nombre de versión para el contexto mock
45 when(mockContext.getPackageName()).thenReturn("com.example.food_front");
46
47 // Ejecutar el método bajo prueba
48 var result = DiagnosticUtil.collectDiagnosticInfo(mockContext);
49
50 // Verificar que el mapa no está vacío
51 assertNotNull(result);
52 assertFalse(result.isEmpty());
53
54 // Verificar que contiene las claves esperadas
55 assertTrue(result.containsKey("device_model"));
56 assertTrue(result.containsKey("device_manufacturer"));
57 assertTrue(result.containsKey("android_version"));
58 assertTrue(result.containsKey("api_level"));
59 assertTrue(result.containsKey("payment_server"));
60 }
61
62 @Test
64 // Configurar el paquete y nombre de versión para el contexto mock
65 when(mockContext.getPackageName()).thenReturn("com.example.food_front");
66
67 // Ejecutar el método bajo prueba
68 String report = DiagnosticUtil.generateDiagnosticReport(mockContext);
69
70 // Verificar que el informe contiene las secciones esperadas
71 assertNotNull(report);
72 assertTrue(report.contains("DIAGNÓSTICO"));
73 assertTrue(report.contains("DISPOSITIVO"));
74 assertTrue(report.contains("APLICACIÓN"));
75 assertTrue(report.contains("SERVIDOR"));
76 }
77
78 @Test
80 // Esta prueba verifica que el método logDiagnosticInfo llama a collectDiagnosticInfo
81
82 // No podemos verificar directamente la llamada a Log.d en una prueba unitaria estándar,
83 // pero podemos verificar que se recopila la información de diagnóstico
84
85 // Configurar el contexto mock
86 when(mockContext.getPackageName()).thenReturn("com.example.food_front");
87
88 // Ejecutar el método bajo prueba
90
91 // El método no tiene valor de retorno, así que esto simplemente verifica
92 // que no se lanza ninguna excepción
93
94 // Idealmente, podríamos verificar con un espía o un mock que collectDiagnosticInfo
95 // fue llamado, pero como es un método estático, es más complicado
96 // En un entorno real, podríamos usar PowerMockito o similar
97 }
98}
static Map< String, String > collectDiagnosticInfo(Context context)
static void logDiagnosticInfo(Context context)
static String generateDiagnosticReport(Context context)