OSDN Git Service

Add unit tests for ToastFrameworkImplTest
authorutzcoz <utzcoz@outlook.com>
Sun, 12 Apr 2020 15:12:41 +0000 (23:12 +0800)
committerutzcoz <utzcoz@outlook.com>
Sun, 12 Apr 2020 15:13:19 +0000 (23:13 +0800)
Test: run ./gradlew test, and all tests passed.

Signed-off-by: utzcoz <utzcoz@outlook.com>
app/src/test/java/com/farmerbb/taskbar/util/ToastFrameworkImplTest.java [new file with mode: 0644]

diff --git a/app/src/test/java/com/farmerbb/taskbar/util/ToastFrameworkImplTest.java b/app/src/test/java/com/farmerbb/taskbar/util/ToastFrameworkImplTest.java
new file mode 100644 (file)
index 0000000..dca3497
--- /dev/null
@@ -0,0 +1,57 @@
+package com.farmerbb.taskbar.util;
+
+import android.content.Context;
+import android.view.Gravity;
+import android.widget.Toast;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.farmerbb.taskbar.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowToast;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+@RunWith(RobolectricTestRunner.class)
+public class ToastFrameworkImplTest {
+    private Context context;
+    private ToastFrameworkImpl impl;
+    private String message = "test-message";
+    private int length = Toast.LENGTH_LONG;
+
+    @Before
+    public void setUp() {
+        context = ApplicationProvider.getApplicationContext();
+        impl = new ToastFrameworkImpl(context, message, length);
+    }
+
+    @Test
+    public void testShow() {
+        impl.show();
+        assertEquals(message, ShadowToast.getTextOfLatestToast());
+        Toast toast = ShadowToast.getLatestToast();
+        assertEquals(length, toast.getDuration());
+        assertEquals(Gravity.BOTTOM | Gravity.CENTER_VERTICAL, toast.getGravity());
+        assertEquals(0, toast.getXOffset());
+        assertEquals(
+                context.getResources().getDimensionPixelSize(R.dimen.tb_toast_y_offset),
+                toast.getYOffset()
+        );
+    }
+
+    @Test
+    public void testCancel() {
+        impl.show();
+        ShadowToast toast = Shadows.shadowOf(ShadowToast.getLatestToast());
+        assertFalse(toast.isCancelled());
+        impl.cancel();
+        assertTrue(toast.isCancelled());
+    }
+}