78 lines
2.2 KiB
C++
78 lines
2.2 KiB
C++
/**
|
|
* @file tests/device_token.cpp
|
|
* @brief brief
|
|
* @date Mar 14, 2016
|
|
* @author jjacobs
|
|
* @copyright 2016 Dual Inventive Technology Centre B.V.
|
|
*
|
|
* descr
|
|
*/
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <di/device.h>
|
|
|
|
/**
|
|
* Check if initial device state is set to DI_DEVICE_TOKEN_DEFAULT_VALUE (0)
|
|
*/
|
|
TEST(device_token, initial) {
|
|
EXPECT_EQ(0U, DI_DEVICE_TOKEN_DEFAULT_VALUE);
|
|
EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get());
|
|
}
|
|
|
|
TEST(device_token, set) {
|
|
/* Initial token, zero may not be written to zero */
|
|
EXPECT_EQ(DNE_OPDENIED, di_device_token_set(0));
|
|
EXPECT_EQ(DNE_OPDENIED, di_device_token_set(DI_DEVICE_TOKEN_DEFAULT_VALUE));
|
|
|
|
/* Normal operation */
|
|
EXPECT_EQ(DNOK, di_device_token_set(1234));
|
|
EXPECT_EQ(1234U, di_device_token_get());
|
|
|
|
/* Set token again */
|
|
EXPECT_EQ(DNOK, di_device_token_set(1234));
|
|
EXPECT_EQ(1234U, di_device_token_get());
|
|
|
|
/* Token is not reset/overwritten when already set */
|
|
EXPECT_EQ(DNE_OPDENIED, di_device_token_set(0));
|
|
EXPECT_EQ(1234U, di_device_token_get());
|
|
|
|
/* Token set operation denied in ACTIVE state */
|
|
EXPECT_EQ(DNOK, di_device_activate());
|
|
EXPECT_EQ(true, di_device_is_active());
|
|
|
|
EXPECT_EQ(DNE_OPDENIED, di_device_token_set(5678));
|
|
EXPECT_EQ(1234U, di_device_token_get());
|
|
|
|
/* Reset, ACTIVE -> ARMED -> IDLE */
|
|
EXPECT_EQ(DNOK, di_device_deactivate());
|
|
EXPECT_EQ(DNOK, di_device_token_reset());
|
|
}
|
|
|
|
/**
|
|
* Test token reset, it is only valid when di_device_state is
|
|
* set to DI_DEVICE_STATE_ARMED
|
|
*/
|
|
TEST(device_token, reset) {
|
|
/* Initial token may not be reset (IDLE state) */
|
|
EXPECT_EQ(DNOK, di_device_token_reset());
|
|
|
|
/* Reset after set */
|
|
EXPECT_EQ(DNOK, di_device_token_set(5678));
|
|
EXPECT_EQ(5678U, di_device_token_get());
|
|
|
|
EXPECT_EQ(DNOK, di_device_token_reset());
|
|
EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get());
|
|
|
|
/* Token reset operation denied in ACTIVE state */
|
|
EXPECT_EQ(DNOK, di_device_token_set(1234));
|
|
EXPECT_EQ(DNOK, di_device_activate());
|
|
|
|
EXPECT_EQ(DNE_OPDENIED, di_device_token_reset());
|
|
|
|
/* Reset, ACTIVE -> ARMED -> IDLE */
|
|
EXPECT_EQ(DNOK, di_device_deactivate());
|
|
EXPECT_EQ(DNOK, di_device_token_reset());
|
|
EXPECT_EQ(DNOK, di_device_token_reset());
|
|
EXPECT_EQ(DI_DEVICE_TOKEN_DEFAULT_VALUE, di_device_token_get());
|
|
}
|