mirror of
https://github.com/esphome/esphome.git
synced 2026-09-28 15:30:21 +00:00
66 lines
2.6 KiB
C++
66 lines
2.6 KiB
C++
#include <gtest/gtest.h>
|
|
#include "esphome/components/mitsubishi/mitsubishi.h"
|
|
|
|
namespace esphome::mitsubishi::testing {
|
|
|
|
TEST(MitsubishiClimateTest, HeatCoolOverrideAdvertisedWithoutHeat) {
|
|
MitsubishiClimate climate;
|
|
climate.set_supports_heat(false);
|
|
climate.set_supports_cool(true);
|
|
climate.set_supports_heat_cool(true);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_TRUE(traits.supports_mode(climate::CLIMATE_MODE_HEAT_COOL));
|
|
EXPECT_FALSE(traits.supports_mode(climate::CLIMATE_MODE_HEAT));
|
|
}
|
|
|
|
TEST(MitsubishiClimateTest, HeatCoolOverrideHiddenWithHeatAndCool) {
|
|
MitsubishiClimate climate;
|
|
climate.set_supports_heat(true);
|
|
climate.set_supports_cool(true);
|
|
climate.set_supports_heat_cool(false);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_FALSE(traits.supports_mode(climate::CLIMATE_MODE_HEAT_COOL));
|
|
EXPECT_TRUE(traits.supports_mode(climate::CLIMATE_MODE_HEAT));
|
|
EXPECT_TRUE(traits.supports_mode(climate::CLIMATE_MODE_COOL));
|
|
}
|
|
|
|
TEST(MitsubishiClimateTest, FanModesFor3Levels) {
|
|
MitsubishiClimate climate;
|
|
climate.set_fan_mode(MITSUBISHI_FAN_3L);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_AUTO));
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_LOW));
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_MEDIUM));
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_HIGH));
|
|
EXPECT_FALSE(traits.supports_fan_mode(climate::CLIMATE_FAN_MIDDLE));
|
|
EXPECT_FALSE(traits.supports_fan_mode(climate::CLIMATE_FAN_QUIET));
|
|
}
|
|
|
|
TEST(MitsubishiClimateTest, FanModesFor4Levels) {
|
|
MitsubishiClimate climate;
|
|
climate.set_fan_mode(MITSUBISHI_FAN_4L);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_MIDDLE));
|
|
EXPECT_FALSE(traits.supports_fan_mode(climate::CLIMATE_FAN_QUIET));
|
|
}
|
|
|
|
TEST(MitsubishiClimateTest, FanModesForQuietAnd4Levels) {
|
|
MitsubishiClimate climate;
|
|
climate.set_fan_mode(MITSUBISHI_FAN_Q4L);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_MIDDLE));
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_QUIET));
|
|
}
|
|
|
|
TEST(MitsubishiClimateTest, FanModesFollowTheLastSetFanMode) {
|
|
MitsubishiClimate climate;
|
|
climate.set_fan_mode(MITSUBISHI_FAN_Q4L);
|
|
climate.set_fan_mode(MITSUBISHI_FAN_3L);
|
|
auto traits = climate.get_traits();
|
|
EXPECT_FALSE(traits.supports_fan_mode(climate::CLIMATE_FAN_MIDDLE));
|
|
EXPECT_FALSE(traits.supports_fan_mode(climate::CLIMATE_FAN_QUIET));
|
|
EXPECT_TRUE(traits.supports_fan_mode(climate::CLIMATE_FAN_HIGH));
|
|
}
|
|
|
|
} // namespace esphome::mitsubishi::testing
|