LayerManagerService tests: add test for Screen
authorNobuhiko Tanibata <ntanibata@jp.adit-jv.com>
Fri, 21 Dec 2012 02:29:45 +0000 (11:29 +0900)
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>
Wed, 9 Jan 2013 12:50:15 +0000 (04:50 -0800)
Signed-off-by: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com>
LayerManagerService/CMakeLists.txt
LayerManagerService/tests/SceneTest.cpp
LayerManagerService/tests/ScreenTest.cpp [new file with mode: 0644]

index a1885ea..ddb8d3f 100644 (file)
@@ -62,6 +62,7 @@ enable_testing()
 set (CMAKE_CXX_FLAGS "")
 add_executable(LayerManagerService_Test
     tests/SceneTest.cpp
+    tests/ScreenTest.cpp
     tests/LayermanagerTest.cpp
     tests/InputManagerTest.cpp
     tests/GraphicalObjectTest.cpp
index 28dce86..9db6867 100644 (file)
@@ -1,6 +1,7 @@
 /***************************************************************************
  *
  * Copyright 2010,2011 BMW Car IT GmbH
+ * Copyright (C) 2012 DENSO CORPORATION and Robert Bosch Car Multimedia Gmbh
  *
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,6 +23,8 @@
 #include "IScene.h"
 #include "Scene.h"
 #include "SurfaceMap.h"
+#include "LmScreenList.h"
+#include <vector>
 
 class SceneTest : public ::testing::Test
 {
@@ -30,12 +33,24 @@ public:
     {
         m_pScene = new Scene();
         ASSERT_TRUE(m_pScene);
+
+        LmScreenList& screenList = m_pScene->getScreenList();
+        LmScreen* pScreen = new LmScreen();
+        ASSERT_TRUE(pScreen);
+        screenList.push_back(pScreen);
     }
 
     void TearDown()
     {
         if (m_pScene)
         {
+            LmScreenList& screenList = m_pScene->getScreenList();
+            LmScreenListIterator iter = screenList.begin();
+            LmScreenListIterator iterEnd = screenList.end();
+            for (; iter != iterEnd; ++iter)
+            {
+                delete (*iter);
+            }
             delete m_pScene;
             m_pScene = 0;
         }
@@ -512,7 +527,7 @@ TEST_F(SceneTest, getLayerIDsOfScreen)
     ASSERT_EQ((uint)0, size);
 
     /// add 3 layers to screen
-    LayerList& llist = m_pScene->getCurrentRenderOrder();
+    LayerList& llist = m_pScene->getCurrentRenderOrder(screenId);
     llist.push_back(l1);
     llist.push_back(l3);
     llist.push_back(l4);
diff --git a/LayerManagerService/tests/ScreenTest.cpp b/LayerManagerService/tests/ScreenTest.cpp
new file mode 100644 (file)
index 0000000..a8985f9
--- /dev/null
@@ -0,0 +1,92 @@
+/***************************************************************************
+ *
+ * Copyright 2010,2011 BMW Car IT GmbH
+ * Copyright (C) 2012 DENSO CORPORATION and Robert Bosch Car Multimedia Gmbh
+ *
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ****************************************************************************/
+
+#include <gtest/gtest.h>
+
+#include "LmScreen.h"
+
+class ScreenTest : public ::testing::Test
+{
+public:
+    void SetUp()
+    {
+        m_pScreen = new LmScreen(10, "/dev/dummy");
+        ASSERT_TRUE(m_pScreen);
+    }
+
+    void TearDown()
+    {
+        if (m_pScreen)
+        {
+            delete m_pScreen;
+            m_pScreen= 0;
+        }
+    }
+
+    LmScreen* m_pScreen;
+};
+
+TEST_F(ScreenTest, constructor_withoutId)
+{
+    /// Create screen without specific id
+    LmScreen* lmScreen = new LmScreen();
+
+    /// make sure, screen has a default id assigned
+    EXPECT_EQ(0u, lmScreen->getID());
+
+    /// make sure, screen hasn't device name
+    EXPECT_EQ(NULL, lmScreen->getDeviceName());
+
+    /// make sure, screen hasn't element of CurrentRenderOrder
+    EXPECT_EQ(true, lmScreen->getCurrentRenderOrder().empty());
+
+    delete lmScreen;
+}
+
+TEST_F(ScreenTest, constructor_withId)
+{
+    unsigned int expectedId = 411;
+    const char expectedDeviceName[] = "/dev/dummy";
+
+    /// Create screen with specific id
+    LmScreen* lmScreen = new LmScreen(expectedId, expectedDeviceName);
+
+    /// make sure, screen has a expected id assigned
+    EXPECT_EQ(expectedId, lmScreen->getID());
+
+    /// make sure, screen has a expected device name
+    EXPECT_STREQ(expectedDeviceName, lmScreen->getDeviceName());
+
+    /// make sure, screen hasn't element of CurrentRenderOrder
+    EXPECT_EQ(true, lmScreen->getCurrentRenderOrder().empty());
+
+    delete lmScreen;
+}
+
+TEST_F(ScreenTest, getCurrentRenderOrder)
+{
+    // TODO: how to test? return by typically reference can't be invalid.
+
+    /// get render order
+    LayerList& llist = m_pScreen->getCurrentRenderOrder();
+
+    /// make sure, list of layers is returned
+    ASSERT_TRUE(&llist);
+}