SRADA-406: Test for UIActionHolder class.
authorMaria Guseva <m.guseva@samsung.com>
Tue, 26 Apr 2016 12:16:23 +0000 (15:16 +0300)
committerMaria Guseva <m.guseva@samsung.com>
Tue, 28 Jun 2016 08:51:24 +0000 (11:51 +0300)
Change-Id: I0d4c4b81f9bb58e2696b96c6339c7aeeea743157

org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/handlers/UIActionHolderTest.java [new file with mode: 0644]

diff --git a/org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/handlers/UIActionHolderTest.java b/org.tizen.dynamicanalyzer/test/src/org/tizen/dynamicanalyzer/handlers/UIActionHolderTest.java
new file mode 100644 (file)
index 0000000..621cae8
--- /dev/null
@@ -0,0 +1,82 @@
+package org.tizen.dynamicanalyzer.handlers;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertThat;
+import static org.powermock.api.mockito.PowerMockito.spy;
+import static org.powermock.api.mockito.PowerMockito.verifyPrivate;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.tizen.dynamicanalyzer.common.Global;
+import org.tizen.dynamicanalyzer.common.UIMode;
+
+@RunWith(PowerMockRunner.class)
+public class UIActionHolderTest {
+
+       /**
+        * Test createUIAction() private method is invoked when getUIAction() is
+        * called.
+        */
+       @Test
+       @PrepareForTest({ UIActionHolder.class })
+       public void getUIAction_createUIActionInstance() throws Exception {
+               spy(UIActionHolder.class);
+               // Invoke getUIAction and check that createUIAction was called once
+               UIActionHolder.getUIAction();
+               verifyPrivate(UIActionHolder.class).invoke("createUIAction");
+       }
+
+       /**
+        * Test createUIAction() private method is invoked when getUIAction() is
+        * called for the first time only.
+        */
+       @Test
+       @PrepareForTest({ UIActionHolder.class })
+       public void getUIAction_createSingleUIActionInstance()
+                       throws Exception {
+               // Invoke getUIAction and check that createUIAction was called once
+               getUIAction_createUIActionInstance();
+               // Invoke getUIAction again
+               UIActionHolder.getUIAction();
+               // Check that createUIAction was still invoked exactly one time
+               verifyPrivate(UIActionHolder.class).invoke("createUIAction");
+       }
+
+       /**
+        * Test that getUIAction() returns {@link GUIAction} instance when GUI mode
+        * is set as current UI mode in {@link Global}
+        */
+       @Test
+       @PrepareForTest({ UIActionHolder.class })
+       public void getUIAction_inGUIMode_retGUIAction() {
+               Global.setCurrentUIMode(UIMode.GUI);
+               UIAction curUIAction = UIActionHolder.getUIAction();
+               assertThat(curUIAction, instanceOf(GUIAction.class));
+       }
+
+       /**
+        * Test that getUIAction() returns {@link CLIAction} instance when CLI mode
+        * is set as current UI mode in {@link Global}
+        */
+       @Test
+       @PrepareForTest({ UIActionHolder.class })
+       public void getUIAction_inCLIMode_retCLIAction() {
+               Global.setCurrentUIMode(UIMode.CLI);
+               UIAction curUIAction = UIActionHolder.getUIAction();
+               assertThat(curUIAction, instanceOf(CLIAction.class));
+       }
+
+       /**
+        * Test that getUIAction() returns {@link GUIAction} instance when UI mode
+        * is not set explicitly.
+        */
+       @Test
+       @PrepareForTest({ UIActionHolder.class })
+       public void getUIAction_inDefaultUIMode_retGUIAction() {
+               UIAction curUIAction = UIActionHolder.getUIAction();
+               assertThat(curUIAction, instanceOf(GUIAction.class));
+       }
+
+}