src.dualinventive.com/dinet/libdi-php/libdi/tests/device_service.cpp

83 lines
2.4 KiB
C++

/**
* @file tests/device_state.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>
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());
}