diff --git a/tests/auto/devices/testdevices.cpp b/tests/auto/devices/testdevices.cpp index a8ceb96e..66ce0f13 100644 --- a/tests/auto/devices/testdevices.cpp +++ b/tests/auto/devices/testdevices.cpp @@ -78,6 +78,9 @@ private slots: void getStateTypes_data(); void getStateTypes(); + void getStateType_data(); + void getStateType(); + void getStateValue_data(); void getStateValue(); @@ -686,6 +689,37 @@ void TestDevices::getStateTypes() } } +void TestDevices::getStateType_data() +{ + QTest::addColumn("stateTypeId"); + QTest::addColumn("error"); + + QTest::newRow("valid int state") << mockIntStateId << DeviceManager::DeviceErrorNoError; + QTest::newRow("valid bool state") << mockBoolStateId << DeviceManager::DeviceErrorNoError; + QTest::newRow("invalid stateTypeId") << StateTypeId::createStateTypeId() << DeviceManager::DeviceErrorStateTypeNotFound; +} + +void TestDevices::getStateType() +{ + QFETCH(StateTypeId, stateTypeId); + QFETCH(DeviceManager::DeviceError, error); + + QVariantMap params; + params.insert("stateTypeId", stateTypeId); + QVariant response = injectAndWait("States.GetStateType", params); + verifyDeviceError(response, error); + + if (error != DeviceManager::DeviceErrorNoError) + return; + + QVariantMap stateType = response.toMap().value("params").toMap().value("stateType").toMap(); + + qDebug() << QJsonDocument::fromVariant(stateType).toJson(); + + QVERIFY2(!stateType.isEmpty(), "Got no stateType"); + QCOMPARE(stateType.value("id").toString(), stateTypeId.toString()); +} + void TestDevices::getStateValue_data() { QTest::addColumn("deviceId");