{"id":6054,"date":"2020-03-24T16:16:25","date_gmt":"2020-03-24T16:16:25","guid":{"rendered":"http:\/\/www.max-sperling.bplaced.net\/?p=6054"},"modified":"2024-02-16T10:28:56","modified_gmt":"2024-02-16T10:28:56","slug":"test-scenario","status":"publish","type":"post","link":"http:\/\/www.max-sperling.bplaced.net\/?p=6054","title":{"rendered":"Unit testing series &#8211; Test scenario (Part 2)"},"content":{"rendered":"<p>For my unit testing series I have designed the following szenario.<\/p>\n<hr>\n<pre class=\"brush: cpp; gutter: false; title: WindowManager.hpp; notranslate\" title=\"WindowManager.hpp\">\r\n#pragma once\r\n\r\nclass IWindowManager\r\n{\r\npublic:\r\n  virtual bool drawAt(unsigned startX, unsigned endX,\r\n                      unsigned startY, unsigned endY) = 0;\r\n};\r\n  \r\nclass WindowManager : public IWindowManager\r\n{\r\npublic:\r\n  WindowManager(unsigned displaySizeX, unsigned displaySizeY);\r\n  bool drawAt(unsigned startX, unsigned endX,\r\n              unsigned startY, unsigned endY) override;\r\nprivate:\r\n  unsigned m_displaySizeX;\r\n  unsigned m_displaySizeY;\r\n};\r\n<\/pre>\n<hr>\n<pre class=\"brush: cpp; gutter: false; title: WindowManager.cpp; notranslate\" title=\"WindowManager.cpp\">\r\n#include &quot;WindowManager.hpp&quot;\r\n\r\nWindowManager::WindowManager(unsigned displaySizeX, unsigned displaySizeY) :\r\n  m_displaySizeX(displaySizeX), m_displaySizeY(displaySizeY) {}\r\n\r\nbool WindowManager::drawAt(unsigned startX, unsigned endX,\r\n                           unsigned startY, unsigned endY)\r\n{\r\n  bool ret = true;\r\n  if (startX &gt;= endX || endX &gt; m_displaySizeX ||\r\n      startY &gt;= endY || endY &gt; m_displaySizeY) ret = false;\r\n  \/\/ ...\r\n  return ret;\r\n}\r\n<\/pre>\n<hr>\n<pre class=\"brush: cpp; gutter: false; title: UserInterface.hpp; notranslate\" title=\"UserInterface.hpp\">\r\n#pragma once\r\n#include &lt;memory&gt;\r\n\r\nclass IWindowManager;\r\n\r\nclass UserInterface\r\n{\r\npublic:\r\n  UserInterface(std::shared_ptr&lt;IWindowManager&gt; windowMgr);\r\n  bool loadWindow(unsigned startX, unsigned endX,\r\n                  unsigned startY, unsigned endY);\r\nprivate:\r\n  std::shared_ptr&lt;IWindowManager&gt; m_windowMgr;\r\n};\r\n<\/pre>\n<hr>\n<pre class=\"brush: cpp; gutter: false; title: UserInterface.cpp; notranslate\" title=\"UserInterface.cpp\">\r\n#include &quot;UserInterface.hpp&quot;\r\n#include &quot;WindowManager.hpp&quot;\r\n\r\nUserInterface::UserInterface(std::shared_ptr&lt;IWindowManager&gt; windowMgr)\r\n  : m_windowMgr(windowMgr) {}\r\n\r\nbool UserInterface::loadWindow(unsigned startX, unsigned endX,\r\n                               unsigned startY, unsigned endY)\r\n{\r\n  return m_windowMgr-&gt;drawAt(startX, endX, startY, endY);\r\n}\r\n<\/pre>\n<hr>\n<pre class=\"brush: cpp; gutter: false; title: Main.App.cpp; notranslate\" title=\"Main.App.cpp\">\r\n#include &quot;WindowManager.hpp&quot;\r\n#include &quot;UserInterface.hpp&quot;\r\n#include &lt;memory&gt;\r\n\r\nint main()\r\n{\r\n  std::shared_ptr&lt;IWindowManager&gt; windowMgr(new WindowManager(1280, 1024));\r\n  std::unique_ptr&lt;UserInterface&gt; userInter(new UserInterface(windowMgr));\r\n  userInter-&gt;loadWindow(0, 1280, 0, 1024);\r\n  \/\/ ...\r\n  return 0;\r\n}\r\n<\/pre>\n<hr>\n<ul>\n<li>Prev: <a href=\"http:\/\/www.max-sperling.bplaced.net\/?p=6004\">Unit testing series \u2013 Intro \/ Setup (Part 1)<\/a><\/li>\n<li>Next: <a href=\"http:\/\/www.max-sperling.bplaced.net\/?p=664\">Unit testing series \u2013 Test without double (Part 3)<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>For my unit testing series I have designed the following szenario. Prev: Unit testing series \u2013 Intro \/ Setup (Part<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[33],"tags":[],"_links":{"self":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/6054"}],"collection":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6054"}],"version-history":[{"count":1,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/6054\/revisions"}],"predecessor-version":[{"id":16768,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/6054\/revisions\/16768"}],"wp:attachment":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6054"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}