Advertisement
cepxuozab

WorkerBehaviorWithSatisfactionSupervisor

Jul 28th, 2024
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. void WorkerBehaviorWithSatisfactionSupervisor() {
  2.         {
  3.             Worker p("ivan"s, 17);
  4.             SatisfactionSupervisor sup{103, 107};
  5.             p.SetObserver(&sup);
  6.  
  7.             ASSERT_EQUAL(p.GetDanceCount(), 0);
  8.             ASSERT_EQUAL(p.GetSatisfaction(), 100);
  9.             ASSERT_EQUAL(p.GetWorkDone(), 0);
  10.             p.LiveADay();
  11.             ASSERT_EQUAL(p.GetDanceCount(), 12);
  12.             ASSERT_EQUAL(p.GetSatisfaction(), 107);
  13.             ASSERT_EQUAL(p.GetWorkDone(), 1);
  14.  
  15.             p.Dance();
  16.             ASSERT_EQUAL(p.GetDanceCount(), 12 + 1);
  17.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 1);
  18.             ASSERT_EQUAL(p.GetWorkDone(), 1);
  19.             p.LiveADay();
  20.             ASSERT_EQUAL(p.GetDanceCount(), 12 + 1);
  21.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 1 - 5);
  22.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1);
  23.  
  24.             p.Dance();
  25.             p.Dance();
  26.             ASSERT_EQUAL(p.GetDanceCount(), 12 + 1 + 2);
  27.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 1 - 5 + 2);
  28.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1);
  29.  
  30.             p.Work();
  31.             ASSERT_EQUAL(p.GetDanceCount(), 12 + 1 + 2 + 7);
  32.             ASSERT_EQUAL(p.GetSatisfaction(), 107);
  33.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1 + 1);
  34.  
  35.             const auto& p_c = p;
  36.             ASSERT_EQUAL(p_c.GetDanceCount(), 12 + 1 + 2 + 7);
  37.             ASSERT_EQUAL(p_c.GetSatisfaction(), 107);
  38.             ASSERT_EQUAL(p_c.GetWorkDone(), 1 + 1 + 1);
  39.         } {
  40.             Worker p("ivan"s, 37);
  41.             SatisfactionSupervisor sup{104, 107};
  42.             p.SetObserver(&sup);
  43.  
  44.             ASSERT_EQUAL(p.GetDanceCount(), 0);
  45.             ASSERT_EQUAL(p.GetSatisfaction(), 100);
  46.             ASSERT_EQUAL(p.GetWorkDone(), 0);
  47.             p.LiveADay();
  48.             ASSERT_EQUAL(p.GetDanceCount(), 6);
  49.             ASSERT_EQUAL(p.GetSatisfaction(), 107);
  50.             ASSERT_EQUAL(p.GetWorkDone(), 1);
  51.  
  52.             p.Dance();
  53.             ASSERT_EQUAL(p.GetDanceCount(), 6 + 1);
  54.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 2);
  55.             ASSERT_EQUAL(p.GetWorkDone(), 1);
  56.             p.LiveADay();
  57.             ASSERT_EQUAL(p.GetDanceCount(), 6 + 1);
  58.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 2 - 5);
  59.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1);
  60.  
  61.             p.Dance();
  62.             p.Dance();
  63.             ASSERT_EQUAL(p.GetDanceCount(), 6 + 1 + 2);
  64.             ASSERT_EQUAL(p.GetSatisfaction(), 107 + 2 - 5 + 4);
  65.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1);
  66.  
  67.             p.Work();
  68.             ASSERT_EQUAL(p.GetDanceCount(), 6 + 1 + 2 + 2);
  69.             ASSERT_EQUAL(p.GetSatisfaction(), 107);
  70.             ASSERT_EQUAL(p.GetWorkDone(), 1 + 1 + 1);
  71.  
  72.             const auto& p_c = p;
  73.             ASSERT_EQUAL(p_c.GetDanceCount(), 6 + 1 + 2 + 2);
  74.             ASSERT_EQUAL(p_c.GetSatisfaction(), 107);
  75.             ASSERT_EQUAL(p_c.GetWorkDone(), 1 + 1 + 1);
  76.         }
  77.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement