From a898185e0b1b3caf7a1369a3caf05d04d2c9c313 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Tue, 20 Apr 2021 11:41:50 +0300 Subject: [PATCH 1/2] add tests --- .../adapter/DynamicLabelAdapter.java | 11 ++- .../src/test/assets/avatar_woman.png | Bin 0 -> 58567 bytes .../adapter/DynamicLabelAdapterTest.java | 38 +++++++- .../jsonwizard/utils/PropertyManagerTest.java | 82 ++++++++++++++++++ 4 files changed, 124 insertions(+), 7 deletions(-) create mode 100644 android-json-form-wizard/src/test/assets/avatar_woman.png create mode 100644 android-json-form-wizard/src/test/java/com/vijay/jsonwizard/utils/PropertyManagerTest.java diff --git a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java index cccc4ead2..6fb22ed37 100644 --- a/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java +++ b/android-json-form-wizard/src/main/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapter.java @@ -18,6 +18,8 @@ import java.io.IOException; import java.util.ArrayList; +import timber.log.Timber; + public class DynamicLabelAdapter extends RecyclerView.Adapter { private final Context context; private final ArrayList dynamicLabelInfoList; @@ -37,7 +39,8 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { final RecyclerViewHolder recyclerViewHolder = (RecyclerViewHolder) holder; - String dynamicLabelTitle = dynamicLabelInfoList.get(position).getDynamicLabelTitle(); + DynamicLabelInfo dynamicLabelInfo = dynamicLabelInfoList.get(position); + String dynamicLabelTitle = dynamicLabelInfo.getDynamicLabelTitle(); if (StringUtils.isNotBlank(dynamicLabelTitle)) { recyclerViewHolder.tileTextView.setText(dynamicLabelTitle); recyclerViewHolder.tileTextView.setVisibility(View.VISIBLE); @@ -45,7 +48,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi recyclerViewHolder.tileTextView.setVisibility(View.GONE); } - String dynamicLabelText = dynamicLabelInfoList.get(position).getDynamicLabelText(); + String dynamicLabelText = dynamicLabelInfo.getDynamicLabelText(); if (StringUtils.isNotBlank(dynamicLabelText)) { recyclerViewHolder.descriptionTextView.setText(dynamicLabelText); recyclerViewHolder.descriptionTextView.setVisibility(View.VISIBLE); @@ -53,13 +56,13 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi recyclerViewHolder.descriptionTextView.setVisibility(View.GONE); } - String dynamicLabelImageSrc = dynamicLabelInfoList.get(position).getDynamicLabelImageSrc(); + String dynamicLabelImageSrc = dynamicLabelInfo.getDynamicLabelImageSrc(); if (StringUtils.isNotBlank(dynamicLabelImageSrc)) { try { recyclerViewHolder.imageViewLabel.setImageDrawable(FormUtils.readImageFromAsset(context, dynamicLabelImageSrc)); recyclerViewHolder.imageViewLabel.setVisibility(View.VISIBLE); } catch (IOException e) { - e.printStackTrace(); + Timber.e(e); recyclerViewHolder.imageViewLabel.setVisibility(View.GONE); } } else { diff --git a/android-json-form-wizard/src/test/assets/avatar_woman.png b/android-json-form-wizard/src/test/assets/avatar_woman.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea97727037209977410c4fe5792b67b529ec597 GIT binary patch literal 58567 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 literal 0 HcmV?d00001 diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java index 85db3ec76..41d95edf8 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java @@ -1,35 +1,67 @@ package com.vijay.jsonwizard.adapter; import android.support.v7.widget.RecyclerView; +import android.view.View; import android.widget.LinearLayout; import com.vijay.jsonwizard.BaseTest; +import com.vijay.jsonwizard.R; import com.vijay.jsonwizard.model.DynamicLabelInfo; import org.junit.Before; import org.junit.Test; import org.robolectric.RuntimeEnvironment; +import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.spy; public class DynamicLabelAdapterTest extends BaseTest { - private DynamicLabelAdapter multiSelectListAdapter; + private DynamicLabelAdapter dynamicLabelAdapter; @Before public void setUp() { - multiSelectListAdapter = spy(new DynamicLabelAdapter(RuntimeEnvironment.application, new ArrayList())); + dynamicLabelAdapter = spy(new DynamicLabelAdapter(RuntimeEnvironment.application, new ArrayList())); } @Test public void testOnCreateViewHolder() { LinearLayout linearLayout = new LinearLayout(RuntimeEnvironment.application); - RecyclerView.ViewHolder itemView = multiSelectListAdapter.onCreateViewHolder(linearLayout, 0); + RecyclerView.ViewHolder itemView = dynamicLabelAdapter.onCreateViewHolder(linearLayout, 0); assertNotNull(itemView); assertTrue(itemView instanceof DynamicLabelAdapter.RecyclerViewHolder); } + + @Test + public void testOnBindViewHolderShouldShowNonBlankViews() { + DynamicLabelInfo dynamicLabelInfo = new DynamicLabelInfo("sampleTitle", "sampleText", "avatar_woman.png"); + ArrayList dynamicLabelInfos = new ArrayList<>(); + dynamicLabelInfos.add(dynamicLabelInfo); + ReflectionHelpers.setField(dynamicLabelAdapter, "dynamicLabelInfoList", dynamicLabelInfos); + LinearLayout linearLayout = new LinearLayout(RuntimeEnvironment.application); + RecyclerView.ViewHolder viewHolder = dynamicLabelAdapter.onCreateViewHolder(linearLayout, 0); + dynamicLabelAdapter.onBindViewHolder(viewHolder, 0); + assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.descriptionText).getVisibility()); + assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.labelTitle).getVisibility()); + assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.imageViewLabel).getVisibility()); + } + + @Test + public void testOnBindViewHolderShouldHideBlankViews() { + DynamicLabelInfo dynamicLabelInfo = new DynamicLabelInfo("", "", ""); + ArrayList dynamicLabelInfos = new ArrayList<>(); + dynamicLabelInfos.add(dynamicLabelInfo); + ReflectionHelpers.setField(dynamicLabelAdapter, "dynamicLabelInfoList", dynamicLabelInfos); + LinearLayout linearLayout = new LinearLayout(RuntimeEnvironment.application); + RecyclerView.ViewHolder viewHolder = dynamicLabelAdapter.onCreateViewHolder(linearLayout, 0); + dynamicLabelAdapter.onBindViewHolder(viewHolder, 0); + assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.descriptionText).getVisibility()); + assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.labelTitle).getVisibility()); + assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.imageViewLabel).getVisibility()); + } } \ No newline at end of file diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/utils/PropertyManagerTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/utils/PropertyManagerTest.java new file mode 100644 index 000000000..c5f444e01 --- /dev/null +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/utils/PropertyManagerTest.java @@ -0,0 +1,82 @@ +package com.vijay.jsonwizard.utils; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.telephony.TelephonyManager; + +import com.vijay.jsonwizard.BaseTest; +import com.vijay.jsonwizard.activities.JsonFormActivity; +import com.vijay.jsonwizard.interfaces.OnActivityRequestPermissionResultListener; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockitoAnnotations; +import org.robolectric.Robolectric; +import org.robolectric.util.ReflectionHelpers; + +import java.util.HashMap; + +import static com.vijay.jsonwizard.utils.PropertyManager.DEVICE_ID_PROPERTY; +import static com.vijay.jsonwizard.utils.PropertyManager.PHONE_NUMBER_PROPERTY; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; + +public class PropertyManagerTest extends BaseTest { + + private JsonFormActivity jsonFormActivity; + + private PropertyManager propertyManager; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + jsonFormActivity = spy(Robolectric.buildActivity(JsonFormActivity.class, getJsonFormActivityIntent()).create().get()); + propertyManager = ReflectionHelpers.getField(jsonFormActivity, "propertyManager"); + } + + @Test + public void testHandleOnRequestPermissionResultsShouldPopulatePropertiesIfPermissionIsGranted() { + ReflectionHelpers.setField(propertyManager, "mContext", jsonFormActivity); + doReturn(createMockTelephonyManager()).when(jsonFormActivity).getSystemService(Context.TELEPHONY_SERVICE); + HashMap resultListenerHashMap = ReflectionHelpers.getField(jsonFormActivity, "onActivityRequestPermissionResultListeners"); + resultListenerHashMap.get(PermissionUtils.PHONE_STATE_PERMISSION) + .onRequestPermissionResult(PermissionUtils.PHONE_STATE_PERMISSION, new String[]{Manifest.permission.READ_PHONE_STATE}, new int[]{PackageManager.PERMISSION_GRANTED}); + + HashMap mProperties = ReflectionHelpers.getField(propertyManager, "mProperties"); + assertEquals(4, mProperties.size()); + assertEquals("mda-2323", mProperties.get(DEVICE_ID_PROPERTY)); + assertEquals("tel-123", mProperties.get(PHONE_NUMBER_PROPERTY)); + } + + @Test + public void testHandleOnRequestPermissionResultsShouldNotPopulatePropertiesIfPermissionIsDenied() { + ReflectionHelpers.setField(propertyManager, "mContext", jsonFormActivity); + HashMap resultListenerHashMap = ReflectionHelpers.getField(jsonFormActivity, "onActivityRequestPermissionResultListeners"); + resultListenerHashMap.get(PermissionUtils.PHONE_STATE_PERMISSION) + .onRequestPermissionResult(PermissionUtils.PHONE_STATE_PERMISSION, new String[]{Manifest.permission.READ_PHONE_STATE}, new int[]{PackageManager.PERMISSION_DENIED}); + + HashMap mProperties = ReflectionHelpers.getField(propertyManager, "mProperties"); + assertTrue(mProperties.isEmpty()); + } + + private TelephonyManager createMockTelephonyManager() { + TelephonyManager mockTelephonyManager = mock(TelephonyManager.class); + doReturn(TelephonyManager.PHONE_TYPE_SIP).when(mockTelephonyManager).getPhoneType(); + doReturn("mda-2323").when(mockTelephonyManager).getDeviceId(); + doReturn("sub-2123").when(mockTelephonyManager).getSubscriberId(); + doReturn("sim-123").when(mockTelephonyManager).getSimSerialNumber(); + doReturn("tel-123").when(mockTelephonyManager).getLine1Number(); + return mockTelephonyManager; + } + + @After + public void tearDown() { + if (jsonFormActivity != null) + jsonFormActivity.finish(); + } +} \ No newline at end of file From 6d3a2d138d28f8e61258ac23de6027b89d039fb5 Mon Sep 17 00:00:00 2001 From: bennsimon Date: Mon, 26 Apr 2021 08:59:11 +0300 Subject: [PATCH 2/2] code cleanup --- .../com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java index 41d95edf8..97a4a1e23 100644 --- a/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java +++ b/android-json-form-wizard/src/test/java/com/vijay/jsonwizard/adapter/DynamicLabelAdapterTest.java @@ -45,7 +45,9 @@ public void testOnBindViewHolderShouldShowNonBlankViews() { ReflectionHelpers.setField(dynamicLabelAdapter, "dynamicLabelInfoList", dynamicLabelInfos); LinearLayout linearLayout = new LinearLayout(RuntimeEnvironment.application); RecyclerView.ViewHolder viewHolder = dynamicLabelAdapter.onCreateViewHolder(linearLayout, 0); + dynamicLabelAdapter.onBindViewHolder(viewHolder, 0); + assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.descriptionText).getVisibility()); assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.labelTitle).getVisibility()); assertEquals(View.VISIBLE, viewHolder.itemView.findViewById(R.id.imageViewLabel).getVisibility()); @@ -59,7 +61,9 @@ public void testOnBindViewHolderShouldHideBlankViews() { ReflectionHelpers.setField(dynamicLabelAdapter, "dynamicLabelInfoList", dynamicLabelInfos); LinearLayout linearLayout = new LinearLayout(RuntimeEnvironment.application); RecyclerView.ViewHolder viewHolder = dynamicLabelAdapter.onCreateViewHolder(linearLayout, 0); + dynamicLabelAdapter.onBindViewHolder(viewHolder, 0); + assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.descriptionText).getVisibility()); assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.labelTitle).getVisibility()); assertEquals(View.GONE, viewHolder.itemView.findViewById(R.id.imageViewLabel).getVisibility());