Files
noolitelib/tests/tst_adapter.cpp

256 lines
7.2 KiB
C++

#include <gtest/gtest.h>
#include "mocks/usbdevicemock.h"
#include "src/noolite.h"
using namespace testing;
TEST(noolite, createAndDeleteAdapter)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
EXPECT_CALL(*usbDevice, openDevice(0x16c0, 0x05df)).
Times(1);
EXPECT_CALL(*usbDevice, close()).
Times(1);
noolitelib::Noolite *adapter = new noolitelib::Noolite(usbDevice);
delete adapter;
}
TEST(noolite, sendCommand_Off)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x0, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Off));
}
TEST(noolite, sendCommand_DecreaseBrightnes)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x01, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::DecraseBrightnes));
}
TEST(noolite, sendCommand_On)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x02, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::On));
}
TEST(noolite, sendCommand_IncreaseBrightnes)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x03, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::IncreaseBrightnes));
}
TEST(noolite, sendCommand_Switch)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x04, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Switch));
}
TEST(noolite, sendCommand_InvertBrightnes)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x05, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::InvertBrightnes));
}
TEST(noolite, sendCommand_Set_OneChannel)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x06, 0x01, 0x0, 3, 0x2A, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Set, noolitelib::Params{ 42 }));
}
TEST(noolite, sendCommand_Set_ThreeChannels)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x06, 0x03, 0x0, 3, 0x28, 0x29, 0x2A };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Set, noolitelib::Params{ 40, 41, 42 }));
}
TEST(noolite, sendCommand_Set_BadArguments)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
EXPECT_CALL(*usbDevice, sendDataToDevice(_)).
Times(0);
EXPECT_FALSE(adapter.sendCommand(3, noolitelib::Set));
EXPECT_FALSE(adapter.sendCommand(3, noolitelib::Set, noolitelib::Params{ 40, 41 }));
EXPECT_FALSE(adapter.sendCommand(3, noolitelib::Set, noolitelib::Params{ 40, 41, 42, 43 }));
}
TEST(noolite, sendCommand_CallScenario)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x07, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::CallScenario));
}
TEST(noolite, sendCommand_SaveScenario)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x08, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::SaveScenario));
}
TEST(noolite, sendCommand_Unbind)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x09, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Unbind));
}
TEST(noolite, sendCommand_StopColorSelection)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x0A, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::StopColorSelection));
}
TEST(noolite, sendCommand_Bind)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x0F, 0x0, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::Bind));
}
TEST(noolite, sendCommand_ColorSelection)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x10, 0x04, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::ColorSelection));
}
TEST(noolite, sendCommand_ColorSwitch)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x11, 0x04, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::ColorSwitch));
}
TEST(noolite, sendCommand_ModeSwitch)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x12, 0x04, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::ModeSwitch));
}
TEST(noolite, sendCommand_EffectSpeed)
{
UsbDeviceMock *usbDevice = new UsbDeviceMock();
noolitelib::Noolite adapter(usbDevice);
noolitelib::Data expectedData{ 0x50, 0x13, 0x04, 0x0, 3, 0x0, 0x0, 0x0 };
EXPECT_CALL(*usbDevice, sendDataToDevice(expectedData)).
WillOnce(Return(true));
EXPECT_TRUE(adapter.sendCommand(3, noolitelib::EffectSpeed));
}