0.6.0 blocco 1: Home di consultazione e pagina Regolazioni
- Home: stato in una riga col pallino, due letture grandi toccabili, tre azioni rapide; via i due slider, i sette pulsanti e la scheda separata. - Nuova pagina Regolazioni: un blocco per grandezza, valore attuale sempre visibile, preimpostazioni per le dita fredde, conferma esplicita; il pulsante e' attivo solo se c'e' davvero qualcosa da cambiare. - Messaggi dei comandi spostati in ApiClient (api.notice) con NoticeBar ancorata in fondo: prima nascevano fuori dallo schermo. - Stato breve/esteso/livello in C++ (testabile senza SDK), 18 verifiche nuove: 79/79. - stale + lastUpdate: la Home dice 'aggiornato alle HH:MM' e spegne i numeri vecchi invece di farli passare per freschi. - 192/192 stringhe tradotte (54 nuove).
This commit is contained in:
@@ -190,6 +190,67 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
// --- stato in una riga e per esteso (Home e pagina Impianto) ----------- //
|
||||
{
|
||||
QVariantMap calmo;
|
||||
calmo.insert("errors_count", 0);
|
||||
calmo.insert("away_mode", false);
|
||||
calmo.insert("night_mode", false);
|
||||
calmo.insert("force_heating", false);
|
||||
calmo.insert("hot_water_heating", false);
|
||||
calmo.insert("pump_active_state", "PUMP_ACTIVE_STATE_IDLE");
|
||||
check(AiraJson::stateShort(calmo) == "Everything is fine",
|
||||
"stato breve: nessuna attivita'");
|
||||
check(AiraJson::stateLong(calmo) == "Relax: the heat pump is running smoothly.",
|
||||
"stato esteso: frase dell'app ufficiale");
|
||||
check(AiraJson::statusLevel(calmo) == 0, "livello: regolare");
|
||||
|
||||
QVariantMap lavora = calmo;
|
||||
lavora.insert("pump_active_state", "PUMP_ACTIVE_STATE_RUNNING");
|
||||
check(AiraJson::stateShort(lavora) == "Working", "stato breve: pompa in funzione");
|
||||
check(AiraJson::statusLevel(lavora) == 0,
|
||||
"livello: pompa in funzione e' comunque regolare");
|
||||
|
||||
QVariantMap acqua = calmo;
|
||||
acqua.insert("hot_water_heating", true);
|
||||
check(AiraJson::stateShort(acqua) == "Heating the hot water",
|
||||
"stato breve: sta scaldando l'acqua");
|
||||
check(AiraJson::stateLong(acqua) == "The heat pump is heating the hot water.",
|
||||
"stato esteso: acqua calda in carica");
|
||||
|
||||
QVariantMap assente = calmo;
|
||||
assente.insert("away_mode", true);
|
||||
check(AiraJson::stateShort(assente) == "Away mode", "stato breve: assenza");
|
||||
check(AiraJson::statusLevel(assente) == 1, "livello: modo attivo, non regolare");
|
||||
|
||||
QVariantMap uno = calmo;
|
||||
uno.insert("errors_count", 1);
|
||||
check(AiraJson::stateShort(uno) == "Attention: one error",
|
||||
"stato breve: un errore (singolare)");
|
||||
check(AiraJson::stateLong(uno) == "Attention: one error on the plant",
|
||||
"stato esteso: un errore");
|
||||
check(AiraJson::statusLevel(uno) == 2, "livello: errore");
|
||||
|
||||
QVariantMap due = calmo;
|
||||
due.insert("errors_count", 2);
|
||||
check(AiraJson::stateShort(due) == "Attention: 2 errors",
|
||||
"stato breve: due errori (plurale)");
|
||||
check(AiraJson::stateLong(due) == "Attention: 2 errors on the plant",
|
||||
"stato esteso: due errori");
|
||||
|
||||
// L'errore ha la precedenza su tutto: e' quello che va visto per primo.
|
||||
QVariantMap misto = assente;
|
||||
misto.insert("errors_count", 3);
|
||||
check(AiraJson::stateShort(misto) == "Attention: 3 errors",
|
||||
"stato breve: l'errore vince sul modo attivo");
|
||||
check(AiraJson::statusLevel(misto) == 2, "livello: errore prima di tutto");
|
||||
|
||||
check(AiraJson::stateShort(QVariantMap()) == "No data",
|
||||
"stato breve: nessun dato");
|
||||
check(AiraJson::stateLong(QVariantMap()).isEmpty(),
|
||||
"stato esteso: nessun dato = nessuna frase");
|
||||
}
|
||||
|
||||
qInfo() << "----";
|
||||
qInfo() << checks - failures << "/" << checks << "verifiche superate";
|
||||
return failures == 0 ? 0 : 1;
|
||||
|
||||
Reference in New Issue
Block a user