1*eb1f46a8SAlexander Hansen #include "group.hpp"
2*eb1f46a8SAlexander Hansen #include "ledlayout.hpp"
3*eb1f46a8SAlexander Hansen #include "manager.hpp"
4*eb1f46a8SAlexander Hansen #include "test-led-priority.hpp"
5*eb1f46a8SAlexander Hansen 
6*eb1f46a8SAlexander Hansen #include <sdbusplus/bus.hpp>
7*eb1f46a8SAlexander Hansen 
8*eb1f46a8SAlexander Hansen #include <algorithm>
9*eb1f46a8SAlexander Hansen #include <set>
10*eb1f46a8SAlexander Hansen 
11*eb1f46a8SAlexander Hansen #include <gtest/gtest.h>
12*eb1f46a8SAlexander Hansen 
13*eb1f46a8SAlexander Hansen using namespace phosphor::led;
14*eb1f46a8SAlexander Hansen 
15*eb1f46a8SAlexander Hansen using Action = phosphor::led::Layout::Action;
16*eb1f46a8SAlexander Hansen 
17*eb1f46a8SAlexander Hansen // systemLedMap is generated code
18*eb1f46a8SAlexander Hansen // static const phosphor::led::GroupMap systemLedMap = {};
19*eb1f46a8SAlexander Hansen 
20*eb1f46a8SAlexander Hansen const std::string basePath = "/xyz/openbmc_project/led/groups/";
21*eb1f46a8SAlexander Hansen 
22*eb1f46a8SAlexander Hansen TEST(YamlLedPriorityTest, assertPriorityOn)
23*eb1f46a8SAlexander Hansen {
24*eb1f46a8SAlexander Hansen     const std::string groupPath = basePath + "group1";
25*eb1f46a8SAlexander Hansen     EXPECT_EQ(systemLedMap.contains(groupPath), true);
26*eb1f46a8SAlexander Hansen 
27*eb1f46a8SAlexander Hansen     phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath);
28*eb1f46a8SAlexander Hansen 
29*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.priority, 0);
30*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.actionSet.size(), 1);
31*eb1f46a8SAlexander Hansen 
32*eb1f46a8SAlexander Hansen     for (auto& led : group.actionSet)
33*eb1f46a8SAlexander Hansen     {
34*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.name, "led1");
35*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.action, Action::On);
36*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.priority, Action::On);
37*eb1f46a8SAlexander Hansen     }
38*eb1f46a8SAlexander Hansen }
39*eb1f46a8SAlexander Hansen 
40*eb1f46a8SAlexander Hansen TEST(YamlLedPriorityTest, assertPriorityOff)
41*eb1f46a8SAlexander Hansen {
42*eb1f46a8SAlexander Hansen     const std::string groupPath = basePath + "group2";
43*eb1f46a8SAlexander Hansen     EXPECT_EQ(systemLedMap.contains(groupPath), true);
44*eb1f46a8SAlexander Hansen 
45*eb1f46a8SAlexander Hansen     phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath);
46*eb1f46a8SAlexander Hansen 
47*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.priority, 0);
48*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.actionSet.size(), 1);
49*eb1f46a8SAlexander Hansen 
50*eb1f46a8SAlexander Hansen     for (auto& led : group.actionSet)
51*eb1f46a8SAlexander Hansen     {
52*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.name, "led2");
53*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.action, Action::Off);
54*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.priority, Action::Off);
55*eb1f46a8SAlexander Hansen     }
56*eb1f46a8SAlexander Hansen }
57*eb1f46a8SAlexander Hansen 
58*eb1f46a8SAlexander Hansen TEST(YamlLedPriorityTest, assertPriorityBlink)
59*eb1f46a8SAlexander Hansen {
60*eb1f46a8SAlexander Hansen     const std::string groupPath = basePath + "group3";
61*eb1f46a8SAlexander Hansen     EXPECT_EQ(systemLedMap.contains(groupPath), true);
62*eb1f46a8SAlexander Hansen 
63*eb1f46a8SAlexander Hansen     phosphor::led::Layout::GroupLayout group = systemLedMap.at(groupPath);
64*eb1f46a8SAlexander Hansen 
65*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.priority, 0);
66*eb1f46a8SAlexander Hansen     EXPECT_EQ(group.actionSet.size(), 1);
67*eb1f46a8SAlexander Hansen 
68*eb1f46a8SAlexander Hansen     for (auto& led : group.actionSet)
69*eb1f46a8SAlexander Hansen     {
70*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.name, "led3");
71*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.action, Action::Blink);
72*eb1f46a8SAlexander Hansen         EXPECT_EQ(led.priority, Action::Blink);
73*eb1f46a8SAlexander Hansen     }
74*eb1f46a8SAlexander Hansen }
75