JD2022-TU1/main/extern/Hue/libhuestream/test/TestGroupToLightStatesSerializer.cpp

85 lines
2.7 KiB
C++

/*******************************************************************************
Copyright (c) 2013-2015 Koninklijke Philips N.V.
All Rights Reserved.
********************************************************************************/
#include <huestream/stream/GroupToLightStatesSerializer.h>
#include "gtest/gtest.h"
#include "gmock/gmock.h"
namespace huestream {
class TestGroupToLightStatesSerializer : public testing::Test {
public:
std::shared_ptr <StreamOptions> _options;
virtual void SetUp() {
_options = std::make_shared<StreamOptions>();
_options->filter = FILTER_LINEAR;
_options->colorSpace = COLORSPACE_RGB;
auto group = std::make_shared<Group>();
_options->group = group;
group->AddLight(1, 0, 0);
group->AddLight(2, 0, 0);
_options->group->GetLights()->at(0)->SetColor(Color(1.0, 0, 0.02));
_options->group->GetLights()->at(1)->SetColor(Color(-1, 0.2, 1));
}
virtual void TearDown() {
}
};
TEST_F(TestGroupToLightStatesSerializer, Serialize) {
const uint8_t seqNr = 3;
auto payload = GroupToLightStatesSerializer(_options).Serialize(seqNr);
std::vector<uint8_t> expect;
expect.push_back(static_cast<uint8_t>('H'));
expect.push_back(static_cast<uint8_t>('u'));
expect.push_back(static_cast<uint8_t>('e'));
expect.push_back(static_cast<uint8_t>('S'));
expect.push_back(static_cast<uint8_t>('t'));
expect.push_back(static_cast<uint8_t>('r'));
expect.push_back(static_cast<uint8_t>('e'));
expect.push_back(static_cast<uint8_t>('a'));
expect.push_back(static_cast<uint8_t>('m'));
expect.push_back(static_cast<uint8_t>(1));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(seqNr));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(COLORSPACE_RGB));
expect.push_back(static_cast<uint8_t>(FILTER_LINEAR));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(1));
expect.push_back(static_cast<uint8_t>(0xFF));
expect.push_back(static_cast<uint8_t>(0xFF));
expect.push_back(static_cast<uint8_t>(0x00));
expect.push_back(static_cast<uint8_t>(0x00));
expect.push_back(static_cast<uint8_t>(0x05));
expect.push_back(static_cast<uint8_t>(0x1E));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(0));
expect.push_back(static_cast<uint8_t>(2));
expect.push_back(static_cast<uint8_t>(0x00));
expect.push_back(static_cast<uint8_t>(0x00));
expect.push_back(static_cast<uint8_t>(0x33));
expect.push_back(static_cast<uint8_t>(0x33));
expect.push_back(static_cast<uint8_t>(0xFF));
expect.push_back(static_cast<uint8_t>(0xFF));
ASSERT_THAT(payload, testing::ElementsAreArray(expect));
}
}