SystemTimeTest.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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: 2023-03-15
  7. * Changed: 2026-06-23
  8. *
  9. * */
  10. #include <gmock/gmock.h>
  11. #include <gtest/gtest.h>
  12. #include <ls-std-time-test.hpp>
  13. #include <ls-std/ls-std-core.hpp>
  14. #include <ls-std/ls-std-time.hpp>
  15. #include <memory>
  16. using ls::standard::core::IllegalArgumentException;
  17. using ls::standard::time::DateParameter;
  18. using ls::standard::time::SystemTime;
  19. using ls::standard::time::SystemTimeParameter;
  20. using std::make_shared;
  21. using std::shared_ptr;
  22. using test::time::MockClock;
  23. using testing::AtLeast;
  24. using testing::Return;
  25. using testing::Test;
  26. namespace
  27. {
  28. class SystemTimeTest : public Test
  29. {
  30. public:
  31. SystemTimeTest() = default;
  32. ~SystemTimeTest() override = default;
  33. };
  34. TEST_F(SystemTimeTest, constructor)
  35. {
  36. EXPECT_THROW(
  37. {
  38. try
  39. {
  40. SystemTime systemTime{nullptr};
  41. }
  42. catch (const IllegalArgumentException &_exception)
  43. {
  44. throw;
  45. }
  46. },
  47. IllegalArgumentException);
  48. }
  49. TEST_F(SystemTimeTest, getClassName)
  50. {
  51. ASSERT_STREQ("SystemTime", SystemTime{}.getClassName().c_str());
  52. }
  53. TEST_F(SystemTimeTest, setTime)
  54. {
  55. const auto parameter = make_shared<SystemTimeParameter>();
  56. const auto posixClock = make_shared<MockClock>();
  57. parameter->setClock(posixClock);
  58. const auto birthday = DateParameter(1990, 10, 26, 11, 25, 00);
  59. EXPECT_CALL(*posixClock, setTime(birthday)).Times(AtLeast(1));
  60. ON_CALL(*posixClock, setTime(birthday)).WillByDefault(Return(true));
  61. ASSERT_TRUE(SystemTime{parameter}.set(birthday));
  62. }
  63. }