72 lines
3.2 KiB
Dart
72 lines
3.2 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:cid_app/global_data.dart';
|
|
import 'package:cid_app/cid_data_manager.dart';
|
|
|
|
void main() {
|
|
test('Verifica Inserimento, Esportazione JSON e Importazione Dati (Simulazione Scambio Firebase)', () {
|
|
// 1. Reset Pulito
|
|
GlobalData.reset();
|
|
GlobalData.latoCorrente = 'A';
|
|
|
|
// 2. Inserimento Dati Simulato (Conducente A compila)
|
|
GlobalData.dataIncidente = "02/05/2026";
|
|
GlobalData.luogo = "Milano, Via Roma 1";
|
|
GlobalData.feriti = false;
|
|
|
|
GlobalData.cognomeContraenteA = "Rossi";
|
|
GlobalData.nomeContraenteA = "Mario";
|
|
GlobalData.codiceFiscaleContraenteA = "RSSMRA80A01F205Z";
|
|
GlobalData.emailContraenteA = "mario.rossi@test.it";
|
|
|
|
GlobalData.marcaETipoA = "Fiat Panda";
|
|
GlobalData.targaA = "AA123BB";
|
|
|
|
GlobalData.denominazioneA = "Assicurazioni Test";
|
|
GlobalData.numeroPolizzaA = "123456789";
|
|
GlobalData.flagDanniMatAssicuratiA = true;
|
|
|
|
GlobalData.danniVisibiliA = "Paraurti distrutto";
|
|
GlobalData.circostanzeA = {2: true, 5: true};
|
|
|
|
// 3. Serializzazione JSON (Simulazione Esportazione verso QR o Firebase)
|
|
Map<String, dynamic> jsonEsportato = CidDataManager.estraiDatiPerExport();
|
|
|
|
// Verifica intermedia della struttura esportata (con le chiavi "minificate")
|
|
expect(jsonEsportato['lato'], 'A');
|
|
expect(jsonEsportato['generali']['luogo'], "Milano, Via Roma 1");
|
|
expect(jsonEsportato['contraente']['cognome'], "Rossi");
|
|
expect(jsonEsportato['veicolo']['targa'], "AA123BB");
|
|
expect(jsonEsportato['assicurazione']['flag_danni'], true);
|
|
|
|
// 4. Reset Simulato (Il dispositivo del Conducente B è vuoto prima di scansionare)
|
|
GlobalData.reset();
|
|
GlobalData.latoCorrente = 'B'; // Adesso siamo il dispositivo B
|
|
expect(GlobalData.cognomeContraenteA, "");
|
|
expect(GlobalData.targaA, "");
|
|
|
|
// 5. Importazione Dati (Simulazione Ricezione JSON scansionato o da Firebase)
|
|
CidDataManager.importaDati(jsonEsportato);
|
|
|
|
// 6. Verifica Integrità Dati Post-Importazione (I dati di A devono essere andati in "Lato A")
|
|
expect(GlobalData.dataIncidente, "02/05/2026", reason: "Data incidente persa");
|
|
expect(GlobalData.luogo, "Milano, Via Roma 1", reason: "Luogo perso");
|
|
expect(GlobalData.feriti, false, reason: "Stato feriti perso");
|
|
|
|
expect(GlobalData.cognomeContraenteA, "Rossi", reason: "Cognome Contraente A perso (Possibile errore naming refactoring)");
|
|
expect(GlobalData.nomeContraenteA, "Mario", reason: "Nome Contraente A perso");
|
|
expect(GlobalData.emailContraenteA, "mario.rossi@test.it", reason: "Email A persa");
|
|
|
|
expect(GlobalData.targaA, "AA123BB", reason: "Targa A persa");
|
|
|
|
expect(GlobalData.numeroPolizzaA, "123456789", reason: "Polizza A persa");
|
|
expect(GlobalData.flagDanniMatAssicuratiA, true, reason: "Flag danni A perso");
|
|
|
|
expect(GlobalData.danniVisibiliA, "Paraurti distrutto", reason: "Danni visibili A persi");
|
|
|
|
// Test mappa circostanze (List vs Map issue test)
|
|
expect(GlobalData.circostanzeA[2], true, reason: "Circostanza 2 persa");
|
|
expect(GlobalData.circostanzeA[5], true, reason: "Circostanza 5 persa");
|
|
|
|
print("✅ TEST COMPLETATO: Serializzazione, Scambio Dati JSON e Refactoring Variabili perfettamente funzionanti.");
|
|
});
|
|
}
|