#include #include "mocks/usbdevicemock.h" #include "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)); }