From 0af3ced4b3a9d406db1e2fd0d740baad6930c75f Mon Sep 17 00:00:00 2001 From: Diovi Robinet Morales Date: Sat, 18 Nov 2017 21:04:34 -0500 Subject: [PATCH] Create unit test for TimeDialog logic --- .../test/dialog/timedialog/ModelBean.java | 34 ++++++++ .../dialog/timedialog/TestTimeDialog.java | 79 +++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 declex-test/app/src/main/java/com/dspot/declex/test/dialog/timedialog/ModelBean.java create mode 100644 declex-test/app/src/test/java/com/dspot/declex/test/dialog/timedialog/TestTimeDialog.java diff --git a/declex-test/app/src/main/java/com/dspot/declex/test/dialog/timedialog/ModelBean.java b/declex-test/app/src/main/java/com/dspot/declex/test/dialog/timedialog/ModelBean.java new file mode 100644 index 00000000..b01f86a6 --- /dev/null +++ b/declex-test/app/src/main/java/com/dspot/declex/test/dialog/timedialog/ModelBean.java @@ -0,0 +1,34 @@ +/** + * Copyright (C) 2016-2017 DSpot Sp. z o.o + * + * 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. + */ +package com.dspot.declex.test.dialog.timedialog; + +import static com.dspot.declex.actions.Action.*; + +import org.androidannotations.annotations.EBean; + +import java.util.Locale; + +@EBean +public class ModelBean { + public void selectTime() { + $TimeDialog() + .title("Select Time") + .message("Select Time of the Job"); + + int $hour = 0, $minute = 0; + String selectdTime = String.format(Locale.US, "Selected time is %02d:%02d", $hour, $minute); + } +} diff --git a/declex-test/app/src/test/java/com/dspot/declex/test/dialog/timedialog/TestTimeDialog.java b/declex-test/app/src/test/java/com/dspot/declex/test/dialog/timedialog/TestTimeDialog.java new file mode 100644 index 00000000..f572c8e0 --- /dev/null +++ b/declex-test/app/src/test/java/com/dspot/declex/test/dialog/timedialog/TestTimeDialog.java @@ -0,0 +1,79 @@ +package com.dspot.declex.test.dialog.timedialog; + +import com.dspot.declex.actions.TimeDialogActionHolder; +import com.dspot.declex.actions.TimeDialogActionHolder_; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.rule.PowerMockRule; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +import java.util.Calendar; +import java.util.concurrent.atomic.AtomicBoolean; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +@RunWith(RobolectricTestRunner.class) +@Config( + manifest = "app/src/main/AndroidManifest.xml", + sdk = 25 +) +@PowerMockIgnore({ "org.mockito.*", "org.robolectric.*", "android.*", "org.powermock.*" }) +@PrepareForTest({ModelBean_.class, TimeDialogActionHolder_.class}) +public class TestTimeDialog { + @Rule + public PowerMockRule rule = new PowerMockRule(); + + @Before + public void setUp() throws Exception { + + } + + @Test + public void testTimeDialogAction() { + TimeDialogActionHolder_ actionTimeDialog = TimeDialogActionHolder_.getInstance_(RuntimeEnvironment.application); + actionTimeDialog.init(); + assertNotNull(actionTimeDialog); + assertNotNull(actionTimeDialog.dialog()); + + actionTimeDialog.init(6, 35); + assertNotNull(actionTimeDialog.dialog()); + + actionTimeDialog.init(Calendar.getInstance()); + assertNotNull(actionTimeDialog.dialog()); + } + + @Test + public void testTimeDialogActionProperties() { + TimeDialogActionHolder_ actionTimeDialog = TimeDialogActionHolder_.getInstance_(RuntimeEnvironment.application); + actionTimeDialog.init(); + assertNotNull(actionTimeDialog); + assertNotNull(actionTimeDialog.title("Select Time")); + assertNotNull(actionTimeDialog.message("Select Time of the Job")); + } + + @Test + public void testTimeDialogSelectAction() { + TimeDialogActionHolder.TimeSetRunnable timeSelected = new TimeDialogActionHolder.TimeSetRunnable() { + @Override + public void run() { + + } + }; + + TimeDialogActionHolder_ actionTimeDialog = TimeDialogActionHolder_.getInstance_(RuntimeEnvironment.application); + actionTimeDialog.init(); + actionTimeDialog.build(timeSelected, null, null); + actionTimeDialog.execute(); + + assertNotNull(actionTimeDialog); + assertNotNull(actionTimeDialog.dialog()); + } +} \ No newline at end of file