/** * @file tests/device_state.cpp * @brief brief * @date Mar 14, 2016 * @author jjacobs * @copyright 2016 Dual Inventive Technology Centre B.V. * * descr */ #include #include TEST(device_service, set_true) { /* Set is the only allowed operation from IDLE state */ EXPECT_EQ(DNOK, di_device_service_set(true)); EXPECT_TRUE(di_device_is_in_service()); /* Try to set second time */ EXPECT_EQ(DNOK, di_device_service_set(true)); EXPECT_TRUE(di_device_is_in_service()); /* Token set is not allowed in SERVICE state */ EXPECT_EQ(DNE_OPDENIED, di_device_token_set(1337)); /* Activate set is not allowed in SERVICE state */ EXPECT_EQ(DNE_OPDENIED, di_device_activate()); /* SERVICE -> IDLE */ EXPECT_EQ(DNOK, di_device_service_reset()); EXPECT_FALSE(di_device_is_in_service()); } TEST(device_service, set_false) { /* IDLE, reset service is not allowed */ EXPECT_EQ(DNE_OPDENIED, di_device_service_reset()); EXPECT_FALSE(di_device_is_in_service()); /* IDLE -> ARMED, set service false is not allowed */ EXPECT_EQ(DNOK, di_device_token_set(1337)); EXPECT_EQ(DNE_OPDENIED, di_device_service_set(false)); /* ARMED -> ACTIVE, set service false is not allowed */ EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DNE_OPDENIED, di_device_service_set(false)); /* ACTIVE -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DNOK, di_device_token_reset()); /* IDLE -> SERVICE -> IDLE */ EXPECT_FALSE(di_device_is_in_service()); EXPECT_EQ(DNOK, di_device_service_set(true)); EXPECT_TRUE(di_device_is_in_service()); EXPECT_EQ(DNOK, di_device_service_set(false)); EXPECT_FALSE(di_device_is_in_service()); } TEST(device_service, reset) { /* IDLE, reset service is not allowed */ EXPECT_EQ(DNE_OPDENIED, di_device_service_reset()); EXPECT_FALSE(di_device_is_in_service()); /* IDLE -> ARMED, reset service is not allowed */ EXPECT_EQ(DNOK, di_device_token_set(1337)); EXPECT_EQ(DNE_OPDENIED, di_device_service_reset()); /* ARMED -> ACTIVE, reset service is not allowed */ EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DNE_OPDENIED, di_device_service_reset()); /* ACTIVE -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DNOK, di_device_token_reset()); /* IDLE -> SERVICE -> IDLE */ EXPECT_FALSE(di_device_is_in_service()); EXPECT_EQ(DNOK, di_device_service_set(true)); EXPECT_TRUE(di_device_is_in_service()); EXPECT_EQ(DNOK, di_device_service_reset()); EXPECT_FALSE(di_device_is_in_service()); }