diff options
author | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2020-05-19 16:50:33 -0400 |
---|---|---|
committer | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2020-05-19 16:50:33 -0400 |
commit | b6ed339cf4035f3ef2296a8d7cf0610abda274c8 (patch) | |
tree | 65b7bcaedfb7fb8d4bd87cff3549e2edc749aa76 | |
parent | cf27d5cedf551039af8c5ad37390aa53763aab4a (diff) | |
download | sdl_android-feature/issue_1353.tar.gz |
Update unit tests to reflect the OnPermissionChangeListener changesfeature/issue_1353
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/permission/PermissionManagerTests.java | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/permission/PermissionManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/permission/PermissionManagerTests.java index 6a66a3092..deb5061dc 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/permission/PermissionManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/permission/PermissionManagerTests.java @@ -21,8 +21,11 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import static com.smartdevicelink.managers.permission.BasePermissionManager.PERMISSION_GROUP_STATUS_DISALLOWED; +import static com.smartdevicelink.managers.permission.BasePermissionManager.PERMISSION_GROUP_STATUS_UNKNOWN; import static com.smartdevicelink.managers.permission.PermissionManager.PERMISSION_GROUP_STATUS_ALLOWED; import static com.smartdevicelink.managers.permission.PermissionManager.PERMISSION_GROUP_STATUS_MIXED; +import static junit.framework.TestCase.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; @@ -39,6 +42,7 @@ public class PermissionManagerTests extends AndroidTestCase2 { protected void setUp() throws Exception { super.setUp(); + // Mock Isdl and its behaviour to use it for PermissionManager testing ISdl internalInterface = mock(ISdl.class); @@ -106,7 +110,7 @@ public class PermissionManagerTests extends AndroidTestCase2 { @Override public void onPermissionsChange(@NonNull Map<FunctionID, PermissionStatus> allowedPermissions, @NonNull int permissionGroupStatus) { // Make sure is the actual result matches the expected one - assertEquals(permissionGroupStatus, PERMISSION_GROUP_STATUS_ALLOWED); + assertEquals(PERMISSION_GROUP_STATUS_ALLOWED, permissionGroupStatus); assertTrue(allowedPermissions.get(FunctionID.SHOW).getIsRPCAllowed()); assertTrue(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getIsRPCAllowed()); assertTrue(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("rpm")); @@ -140,7 +144,7 @@ public class PermissionManagerTests extends AndroidTestCase2 { // Make sure the listener is called exactly once - assertEquals("Listener was not called or called more/less frequently than expected", listenerCalledCounter, 1); + assertEquals("Listener was not called or called more/less frequently than expected", 1, listenerCalledCounter); } @@ -148,6 +152,11 @@ public class PermissionManagerTests extends AndroidTestCase2 { public void testListenersAnyAllowed() { listenerCalledCounter = 0; + + // Emulate Core's behaviour by sending OnHMIStatus notification + sendFakeCoreOnHMIStatusNotifications(HMILevel.HMI_NONE); + + // Test how developers can add listeners through PermissionManager List<PermissionElement> permissionElements = new ArrayList<>(); permissionElements.add(new PermissionElement(FunctionID.SHOW, null)); @@ -157,13 +166,19 @@ public class PermissionManagerTests extends AndroidTestCase2 { public void onPermissionsChange(@NonNull Map<FunctionID, PermissionStatus> allowedPermissions, @NonNull int permissionGroupStatus) { // Make sure is the actual result matches the expected one if (listenerCalledCounter == 0) { // Listener called for the first time - assertEquals(permissionGroupStatus, PERMISSION_GROUP_STATUS_MIXED); + assertEquals(PERMISSION_GROUP_STATUS_DISALLOWED, permissionGroupStatus); + assertFalse(allowedPermissions.get(FunctionID.SHOW).getIsRPCAllowed()); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getIsRPCAllowed()); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("rpm")); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("airbagStatus")); + } else if (listenerCalledCounter == 1) { // Listener called for the first time + assertEquals(PERMISSION_GROUP_STATUS_MIXED, permissionGroupStatus); assertTrue(allowedPermissions.get(FunctionID.SHOW).getIsRPCAllowed()); - assertTrue(!allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getIsRPCAllowed()); - assertTrue(!allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("rpm")); - assertTrue(!allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("airbagStatus")); - } else if (listenerCalledCounter == 1) { // Listener called for the second time - assertEquals(permissionGroupStatus, PERMISSION_GROUP_STATUS_ALLOWED); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getIsRPCAllowed()); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("rpm")); + assertFalse(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("airbagStatus")); + } else if (listenerCalledCounter == 2) { // Listener called for the third time + assertEquals(PERMISSION_GROUP_STATUS_ALLOWED, permissionGroupStatus); assertTrue(allowedPermissions.get(FunctionID.SHOW).getIsRPCAllowed()); assertTrue(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getIsRPCAllowed()); assertTrue(allowedPermissions.get(FunctionID.GET_VEHICLE_DATA).getAllowedParameters().get("rpm")); @@ -198,6 +213,6 @@ public class PermissionManagerTests extends AndroidTestCase2 { // Make sure the the listener is called exactly twice - assertEquals("Listener was not called or called more/less frequently than expected", listenerCalledCounter, 2); + assertEquals("Listener was not called or called more/less frequently than expected", 3, listenerCalledCounter); } } |