/** * @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_activation, initial) { EXPECT_EQ(false, di_device_is_active()); } TEST(device_activation, activate) { /* Activate is a denied operation from IDLE state */ EXPECT_EQ(DI_DEVICE_STATE_IDLE, di_device_state_get()); EXPECT_EQ(DNE_OPDENIED, di_device_activate()); /* Activate, first set token (IDLE -> ARMED -> ACTIVE) */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DI_DEVICE_STATE_ACTIVE, di_device_state_get()); /* Try to activate again, this operation is ignored */ EXPECT_EQ(DNOK, di_device_activate()); /* Reset, ACTIVE -> ARMED -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); EXPECT_EQ(DNOK, di_device_token_reset()); EXPECT_EQ(DI_DEVICE_STATE_IDLE, di_device_state_get()); } TEST(device_activation, deactivate) { /* Deactivate is a denied operation from IDLE state */ EXPECT_EQ(DNE_OPDENIED, di_device_deactivate()); /* Deactivate is a ignored operation from ARMED state */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); EXPECT_EQ(DNOK, di_device_deactivate()); /* Deactivate, first activate (ARMED -> ACTIVE -> ARMED) */ EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DI_DEVICE_STATE_ACTIVE, di_device_state_get()); EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); /* Reset ARMED -> IDLE */ EXPECT_EQ(DNOK, di_device_token_reset()); EXPECT_EQ(DI_DEVICE_STATE_IDLE, di_device_state_get()); } TEST(device_activation, set) { /* Activate, first set token (IDLE -> ARMED -> ACTIVE) */ EXPECT_EQ(DNOK, di_device_token_set(1234)); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); EXPECT_EQ(DNOK, di_device_activate()); EXPECT_EQ(DI_DEVICE_STATE_ACTIVE, di_device_state_get()); /* Set ACTIVE -> ARMED */ EXPECT_EQ(DNOK, di_device_activation_set(false)); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); /* Set ARMED -> ARMED, check if DNOK is returned */ EXPECT_EQ(DNOK, di_device_activation_set(false)); /* Set ARMED -> ACTIVE */ EXPECT_EQ(DNOK, di_device_activation_set(true)); EXPECT_EQ(DI_DEVICE_STATE_ACTIVE, di_device_state_get()); /* Reset, ACTIVE -> ARMED -> IDLE */ EXPECT_EQ(DNOK, di_device_deactivate()); EXPECT_EQ(DI_DEVICE_STATE_ARMED, di_device_state_get()); EXPECT_EQ(DNOK, di_device_token_reset()); EXPECT_EQ(DI_DEVICE_STATE_IDLE, di_device_state_get()); }