+START_TEST (check_time) {
+ bool result;
+ char const *tracing_key_base64 = "3UmKrtcQ2tfLE8UPSXHb4PtgRfE0E2xdSs+PGVIS8cc=";
+ uint32_t dn;
+ uint8_t tn;
+ time_t base = 1587415596;
+ time_t check;
+ Contrac * contrac;
+ char dtk_base64[DTK_SIZE_BASE64 + 1];
+ char rpi_base64[RPI_SIZE_BASE64 + 1];
+
+ check = base;
+ dn = epoch_to_day_number(check);
+ ck_assert_int_eq(dn, 18372);
+ tn = epoch_to_time_interval_number(check);
+ ck_assert_int_eq(tn, 124);
+
+ check = base + (24 * 60 * 60);
+ dn = epoch_to_day_number(check);
+ ck_assert_int_eq(dn, 18372 + 1);
+ tn = epoch_to_time_interval_number(check);
+ ck_assert_int_eq(tn, 124);
+
+ check = base - 675 * (24 * 60 * 60);
+ dn = epoch_to_day_number(check);
+ ck_assert_int_eq(dn, 18372 - 675);
+ tn = epoch_to_time_interval_number(check);
+ ck_assert_int_eq(tn, 124);
+
+ check = base + 15 * (10 * 60);
+ dn = epoch_to_day_number(check);
+ ck_assert_int_eq(dn, 18372);
+ tn = epoch_to_time_interval_number(check);
+ ck_assert_int_eq(tn, 124 + 15);
+
+ fake_time = 1587415596;
+
+ contrac = contrac_new();
+ contrac_set_tracing_key_base64(contrac, tracing_key_base64);
+
+ contrac_update_current_time(contrac);
+ result = contrac_get_initialised(contrac);
+ ck_assert(result);
+
+ contrac_get_daily_key_base64(contrac, dtk_base64);
+ ck_assert_str_eq(dtk_base64, "6GMXmeDAR5XU0AEtZQJ+tA==");
+
+ contrac_get_proximity_id_base64(contrac, rpi_base64);
+ ck_assert_str_eq(rpi_base64, "ysbjVuF7xf9eDH2y2T8VpQ==");
+
+ contrac_delete(contrac);
+}
+END_TEST
+