aboutsummaryrefslogtreecommitdiff
path: root/test_data_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'test_data_manager.c')
-rw-r--r--test_data_manager.c41
1 files changed, 25 insertions, 16 deletions
diff --git a/test_data_manager.c b/test_data_manager.c
index f21cc97..00b5a2a 100644
--- a/test_data_manager.c
+++ b/test_data_manager.c
@@ -2,32 +2,41 @@
#include "data_manager.h"
#include "test_runner.h"
+#include "barometer.h"
#include "unity.h"
+static int mock_baro_called;
+
+static void reset_mock_get_baro(void) {
+ mock_baro_called = 0;
+}
+
+static float set_mock_get_baro(void) {
+ mock_baro_called = 1;
+ return 1.0;
+};
+
+static struct barometer mock_barometer = {
+ .read_pressure = set_mock_get_baro,
+};
+
RUNNER_DECLARE_TEST(test_data_manager_init_setting)
{
struct data_ctx ctx;
- data_manager_init(&ctx);
- TEST_ASSERT_FLOAT_WITHIN(FLT_EPSILON, 1013.25, ctx.setting);
+ reset_mock_get_baro();
+ data_manager_init(&ctx, NULL, &mock_barometer);
+ TEST_ASSERT_EQUAL(1, mock_baro_called);
}
RUNNER_DECLARE_TEST(test_data_manager_first_readings)
{
struct data_ctx ctx;
- data_manager_init(&ctx);
- TEST_ASSERT_FLOAT_WITHIN(FLT_EPSILON, 1019.5, ctx.pressure);
- data_manager_tick(&ctx);
- TEST_ASSERT_FLOAT_WITHIN(FLT_EPSILON, 1019.45, ctx.pressure);
-}
+ reset_mock_get_baro();
+ data_manager_init(&ctx, NULL, &mock_barometer);
+ TEST_ASSERT_EQUAL(1, mock_baro_called);
-RUNNER_DECLARE_TEST(test_data_manager_reinit)
-{
- struct data_ctx ctx;
- /* init 1 */
- data_manager_init(&ctx);
- TEST_ASSERT_FLOAT_WITHIN(FLT_EPSILON, 1019.5, ctx.pressure);
- /* check re-init */
- data_manager_init(&ctx);
- TEST_ASSERT_FLOAT_WITHIN(FLT_EPSILON, 1019.5, ctx.pressure);
+ reset_mock_get_baro();
+ data_manager_tick(&ctx);
+ TEST_ASSERT_EQUAL(1, mock_baro_called);
}