cid_app/test/data_exchange_test.dart

73 lines
3.2 KiB
Dart
Raw Permalink Normal View History

2026-05-02 12:00:02 +02:00
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.");
});
}