blob: 36b7d3ccbff0f5b4c82c898e8996f6bbe1a174ab [file] [log] [blame]
Andrew Jeffery275f7c32024-01-31 12:41:14 +10301#include "MCTPEndpoint.hpp"
2#include "Utils.hpp"
3
4#include <stdexcept>
5
6#include <gtest/gtest.h>
7
8TEST(I2CMCTPDDevice, matchEmptyConfig)
9{
10 SensorData config{};
11 EXPECT_FALSE(I2CMCTPDDevice::match(config));
12}
13
14TEST(I2CMCTPDDevice, matchIrrelevantConfig)
15{
16 SensorData config{{"xyz.openbmc_project.Configuration.NVME1000", {}}};
17 EXPECT_FALSE(I2CMCTPDDevice::match(config));
18}
19
20TEST(I2CMCTPDDevice, matchRelevantConfig)
21{
22 SensorData config{{"xyz.openbmc_project.Configuration.MCTPI2CTarget", {}}};
23 EXPECT_TRUE(I2CMCTPDDevice::match(config));
24}
25
26TEST(I2CMCTPDDevice, fromBadIfaceNoType)
27{
28 SensorBaseConfigMap iface{{}};
29 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
30}
31
32TEST(I2CMCTPDDevice, fromBadIfaceWrongType)
33{
34 SensorBaseConfigMap iface{{"Type", "NVME1000"}};
35 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
36}
37
38TEST(I2CMCTPDDevice, fromBadIfaceNoAddress)
39{
40 SensorBaseConfigMap iface{
41 {"Bus", "0"},
42 {"Name", "test"},
43 {"Type", "MCTPI2CTarget"},
44 };
45 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
46}
47
48TEST(I2CMCTPDDevice, fromBadIfaceBadAddress)
49{
50 SensorBaseConfigMap iface{
51 {"Address", "not a number"},
52 {"Bus", "0"},
53 {"Name", "test"},
54 {"Type", "MCTPI2CTarget"},
55 };
56 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
57}
58
59TEST(I2CMCTPDDevice, fromBadIfaceNoBus)
60{
61 SensorBaseConfigMap iface{
62 {"Address", "0x1d"},
63 {"Name", "test"},
64 {"Type", "MCTPI2CTarget"},
65 };
66 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
67}
68
69TEST(I2CMCTPDDevice, fromBadIfaceBadBus)
70{
71 SensorBaseConfigMap iface{
72 {"Address", "0x1d"},
73 {"Bus", "not a number"},
74 {"Name", "test"},
75 {"Type", "MCTPI2CTarget"},
76 };
77 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
78}
79
80TEST(I2CMCTPDDevice, fromBadIfaceNoName)
81{
82 SensorBaseConfigMap iface{
83 {"Address", "0x1d"},
84 {"Bus", "0"},
85 {"Type", "MCTPI2CTarget"},
86 };
87 EXPECT_THROW(I2CMCTPDDevice::from({}, iface), std::invalid_argument);
88}