/test/unit/testDaemon.cpp

https://github.com/deltaforge/nebu-app-framework-cpp · C++ · 81 lines · 59 code · 18 blank · 4 comment · 0 complexity · d15c339e47c26cff0dab877af22485f5 MD5 · raw file

  1. #include "nebu-app-framework/daemon.h"
  2. #include "log4cxx/basicconfigurator.h"
  3. #include "gtest/gtest.h"
  4. #include "gmock/gmock.h"
  5. // Using declarations - standard library
  6. using std::make_shared;
  7. using std::shared_ptr;
  8. using std::string;
  9. // Using declarations - nebu-common
  10. using nebu::common::VirtualMachine;
  11. // Using declarations - nebu-app-framework
  12. using nebu::app::framework::Daemon;
  13. using nebu::app::framework::DaemonType;
  14. // Using declarations - gtest/gmock
  15. using testing::Eq;
  16. class StubDaemon : public Daemon
  17. {
  18. public:
  19. StubDaemon(shared_ptr<VirtualMachine> vm) : Daemon(vm) { }
  20. virtual ~StubDaemon() { }
  21. virtual bool launch() { return false; }
  22. virtual DaemonType getType() const { return 0; }
  23. void clearLaunched() { this->launched = false; }
  24. void setLaunched() { this->launched = true; }
  25. };
  26. TEST(DaemonTest, testConstructorSetsVM) {
  27. shared_ptr<VirtualMachine> vm = make_shared<VirtualMachine>("Some VM");
  28. StubDaemon daemon(vm);
  29. EXPECT_THAT(daemon.getHostVM(), Eq(vm));
  30. }
  31. TEST(DaemonTest, testConstructorDefaultsLaunchedToFalse) {
  32. shared_ptr<VirtualMachine> vm = make_shared<VirtualMachine>("Some VM");
  33. StubDaemon daemon(vm);
  34. EXPECT_THAT(daemon.hasLaunched(), Eq(false));
  35. }
  36. TEST(DaemonTest, testGetHostname) {
  37. string hostname = "Some Hostname";
  38. string altHostname = "Updated Hostname";
  39. shared_ptr<VirtualMachine> vm = make_shared<VirtualMachine>("Some VM");
  40. StubDaemon daemon(vm);
  41. vm->setHostname(hostname);
  42. EXPECT_THAT(daemon.getHostname(), Eq(hostname));
  43. vm->setHostname(altHostname);
  44. EXPECT_THAT(daemon.getHostname(), Eq(altHostname));
  45. }
  46. TEST(DaemonTest, testHasLaunchedFalse) {
  47. shared_ptr<VirtualMachine> vm = make_shared<VirtualMachine>("Some VM");
  48. StubDaemon daemon(vm);
  49. daemon.clearLaunched();
  50. EXPECT_THAT(daemon.hasLaunched(), Eq(false));
  51. }
  52. TEST(DaemonTest, testHasLaunchedTrue) {
  53. shared_ptr<VirtualMachine> vm = make_shared<VirtualMachine>("Some VM");
  54. StubDaemon daemon(vm);
  55. daemon.setLaunched();
  56. EXPECT_THAT(daemon.hasLaunched(), Eq(true));
  57. }
  58. int main(int argc, char **argv) {
  59. log4cxx::BasicConfigurator::configure();
  60. log4cxx::Logger::getRootLogger()->setLevel(log4cxx::Level::getOff());
  61. testing::InitGoogleMock(&argc, argv);
  62. return RUN_ALL_TESTS();
  63. }