LogLevelTest.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Co-Author: Claude Sonnet 4.6 (LLM)
  4. * Company: Lynar Studios
  5. * E-Mail: webmaster@lynarstudios.com
  6. * Created: 2021-05-02
  7. * Changed: 2026-06-23
  8. *
  9. * */
  10. #include <gtest/gtest.h>
  11. #include <ls-std/ls-std-core.hpp>
  12. #include <ls-std/ls-std-io.hpp>
  13. using ls::standard::core::IllegalArgumentException;
  14. using ls::standard::io::LogLevel;
  15. using ls::standard::io::LogLevelValue;
  16. using testing::Test;
  17. namespace
  18. {
  19. class LogLevelTest : public Test
  20. {
  21. public:
  22. LogLevelTest() = default;
  23. ~LogLevelTest() override = default;
  24. };
  25. TEST_F(LogLevelTest, constructor_with_log_level_value_parameter)
  26. {
  27. const LogLevel logLevel{LogLevelValue::INFO};
  28. ASSERT_EQ(LogLevelValue::INFO, logLevel.getValue());
  29. }
  30. TEST_F(LogLevelTest, constructor_default)
  31. {
  32. const LogLevel logLevel{};
  33. ASSERT_EQ(LogLevelValue::FATAL, logLevel.getValue());
  34. }
  35. TEST_F(LogLevelTest, operator_assign)
  36. {
  37. LogLevel logLevel{LogLevelValue::DEBUG};
  38. logLevel = LogLevelValue::INFO;
  39. ASSERT_EQ(LogLevelValue::INFO, logLevel.getValue());
  40. }
  41. TEST_F(LogLevelTest, operator_lessThan)
  42. {
  43. const LogLevel logLevel{}; // default is FATAL
  44. ASSERT_TRUE(logLevel < LogLevelValue::ERR);
  45. ASSERT_TRUE(logLevel < LogLevelValue::WARN);
  46. ASSERT_TRUE(logLevel < LogLevelValue::INFO);
  47. ASSERT_TRUE(logLevel < LogLevelValue::DEBUG);
  48. ASSERT_TRUE(logLevel < LogLevelValue::TRACE);
  49. }
  50. TEST_F(LogLevelTest, operator_lessThan_not_less_than)
  51. {
  52. const LogLevel logLevel{LogLevelValue::DEBUG};
  53. ASSERT_FALSE(logLevel < LogLevelValue::ERR);
  54. }
  55. TEST_F(LogLevelTest, operator_less_than_equals)
  56. {
  57. LogLevel logLevel{}; // default is FATAL
  58. ASSERT_TRUE(logLevel <= LogLevelValue::FATAL);
  59. ASSERT_TRUE(logLevel <= LogLevelValue::ERR);
  60. ASSERT_TRUE(logLevel <= LogLevelValue::WARN);
  61. ASSERT_TRUE(logLevel <= LogLevelValue::INFO);
  62. ASSERT_TRUE(logLevel <= LogLevelValue::DEBUG);
  63. ASSERT_TRUE(logLevel <= LogLevelValue::TRACE);
  64. }
  65. TEST_F(LogLevelTest, operator_less_than_equals_not_less_than_equals)
  66. {
  67. const LogLevel logLevel{LogLevelValue::DEBUG};
  68. ASSERT_FALSE(logLevel <= LogLevelValue::ERR);
  69. }
  70. TEST_F(LogLevelTest, operator_greater_than)
  71. {
  72. const LogLevel logLevel{LogLevelValue::DEBUG};
  73. ASSERT_TRUE(logLevel > LogLevelValue::ERR);
  74. }
  75. TEST_F(LogLevelTest, operator_greater_than_not_greater_than)
  76. {
  77. const LogLevel logLevel{LogLevelValue::DEBUG};
  78. ASSERT_FALSE(logLevel > LogLevelValue::DEBUG);
  79. }
  80. TEST_F(LogLevelTest, operator_greater_than_equals)
  81. {
  82. const LogLevel logLevel{LogLevelValue::DEBUG};
  83. ASSERT_TRUE(logLevel >= LogLevelValue::ERR);
  84. }
  85. TEST_F(LogLevelTest, operator_greater_than_equals_not_greater_than_equals)
  86. {
  87. const LogLevel logLevel{};
  88. ASSERT_FALSE(logLevel >= LogLevelValue::ERR);
  89. }
  90. TEST_F(LogLevelTest, operator_equals)
  91. {
  92. const LogLevel logLevel{LogLevelValue::DEBUG};
  93. ASSERT_TRUE(logLevel == LogLevelValue::DEBUG);
  94. }
  95. TEST_F(LogLevelTest, operator_equals_not_equals)
  96. {
  97. const LogLevel logLevel{LogLevelValue::TRACE};
  98. ASSERT_FALSE(logLevel == LogLevelValue::DEBUG);
  99. }
  100. TEST_F(LogLevelTest, getLogLevel)
  101. {
  102. ASSERT_EQ(LogLevelValue::FATAL, LogLevel{}.getValue());
  103. }
  104. TEST_F(LogLevelTest, setLogLevel_with_log_level_value)
  105. {
  106. LogLevel logLevel{};
  107. logLevel.setLogLevel(LogLevelValue::INFO);
  108. ASSERT_EQ(LogLevelValue::INFO, logLevel.getValue());
  109. }
  110. TEST_F(LogLevelTest, setLogLevel_with_string)
  111. {
  112. LogLevel logLevel{};
  113. logLevel.setLogLevel("FATAL");
  114. ASSERT_EQ(LogLevelValue::FATAL, logLevel.getValue());
  115. logLevel.setLogLevel("ERROR");
  116. ASSERT_EQ(LogLevelValue::ERR, logLevel.getValue());
  117. logLevel.setLogLevel("WARN");
  118. ASSERT_EQ(LogLevelValue::WARN, logLevel.getValue());
  119. logLevel.setLogLevel("INFO");
  120. ASSERT_EQ(LogLevelValue::INFO, logLevel.getValue());
  121. logLevel.setLogLevel("DEBUG");
  122. ASSERT_EQ(LogLevelValue::DEBUG, logLevel.getValue());
  123. logLevel.setLogLevel("TRACE");
  124. ASSERT_EQ(LogLevelValue::TRACE, logLevel.getValue());
  125. }
  126. TEST_F(LogLevelTest, setLogLevel_string_no_valid_string)
  127. {
  128. LogLevel logLevel{};
  129. EXPECT_THROW(
  130. {
  131. try
  132. {
  133. logLevel.setLogLevel("This is not a valid log level!");
  134. }
  135. catch (const IllegalArgumentException &_exception)
  136. {
  137. throw;
  138. }
  139. },
  140. IllegalArgumentException);
  141. }
  142. TEST_F(LogLevelTest, toString)
  143. {
  144. LogLevel logLevel{};
  145. ASSERT_STREQ("FATAL", logLevel.toString().c_str());
  146. logLevel.setLogLevel(LogLevelValue::ERR);
  147. ASSERT_STREQ("ERROR", logLevel.toString().c_str());
  148. logLevel.setLogLevel(LogLevelValue::WARN);
  149. ASSERT_STREQ("WARN", logLevel.toString().c_str());
  150. logLevel.setLogLevel(LogLevelValue::INFO);
  151. ASSERT_STREQ("INFO", logLevel.toString().c_str());
  152. logLevel.setLogLevel(LogLevelValue::DEBUG);
  153. ASSERT_STREQ("DEBUG", logLevel.toString().c_str());
  154. logLevel.setLogLevel(LogLevelValue::TRACE);
  155. ASSERT_STREQ("TRACE", logLevel.toString().c_str());
  156. }
  157. }