diff options
author | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2021-08-13 15:45:57 -0400 |
---|---|---|
committer | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2021-08-13 15:45:57 -0400 |
commit | ce763033e40233eb6e9ac38bcefebdc3177b60be (patch) | |
tree | 9b2dd30721ae087eb1b547afa586d6c443d7449d | |
parent | 2fb7b0d89619ab1b66218c12277e17cd5f3b1ced (diff) | |
download | sdl_android-ce763033e40233eb6e9ac38bcefebdc3177b60be.tar.gz |
Add unit tests for issue #1723
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperationTests.java | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperationTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperationTests.java index ee47f49b8..f0441a322 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperationTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceOperationTests.java @@ -55,6 +55,7 @@ import com.smartdevicelink.proxy.RPCMessage; import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.proxy.RPCResponse; import com.smartdevicelink.proxy.rpc.SdlMsgVersion; +import com.smartdevicelink.proxy.rpc.TextField; import com.smartdevicelink.proxy.rpc.WindowCapability; import com.smartdevicelink.proxy.rpc.enums.MenuLayout; import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener; @@ -91,7 +92,7 @@ public class MenuReplaceOperationTests { public void testSuccess() { final ISdl internalInterface = createISdlMock(); FileManager fileManager = createFileManagerMock(); - WindowCapability windowCapability = createWindowCapability(true, true); + WindowCapability windowCapability = createWindowCapability(true, true, new ArrayList<TextField>()); MenuConfiguration menuConfiguration = new MenuConfiguration(MenuLayout.LIST, MenuLayout.LIST); MenuCell menuCell1_1 = new MenuCell("cell 1_1", TestValues.GENERAL_ARTWORK, null, null); @@ -116,6 +117,51 @@ public class MenuReplaceOperationTests { transactionQueue.add(operation, false); } + @Test + public void testSwitchingCellsOrder() { + // This unit test is for this bug https://github.com/smartdevicelink/sdl_java_suite/issues/1723 + final ISdl internalInterface = createISdlMock(); + final FileManager fileManager = createFileManagerMock(); + final WindowCapability windowCapability = createWindowCapability(true, true, new ArrayList<TextField>()); + final MenuConfiguration menuConfiguration = new MenuConfiguration(MenuLayout.LIST, MenuLayout.LIST); + + MenuSelectionListener listener = null; + final MenuCell menuCell1 = new MenuCell("A", "SecondaryText", null, null, null, null, listener); + final MenuCell menuCell2 = new MenuCell("A", null, null, null, null, null, listener); + final MenuCell menuCell3 = new MenuCell("C", null, null, null, null, null, listener); + + MenuReplaceOperation operation = new MenuReplaceOperation(internalInterface, fileManager, windowCapability, menuConfiguration, new ArrayList<MenuCell>(), Arrays.asList(menuCell1, menuCell2, menuCell3), true, new MenuManagerCompletionListener() { + @Override + public void onComplete(final boolean success, final List<MenuCell> currentMenuCells1) { + assertOnMainThread(new Runnable() { + @Override + public void run() { + assertTrue(success); + verify(internalInterface, Mockito.times(1)).sendRPCs(any(List.class), any(OnMultipleRequestListener.class)); + + MenuReplaceOperation operation = new MenuReplaceOperation(internalInterface, fileManager, windowCapability, menuConfiguration, new ArrayList<MenuCell>(), Arrays.asList(menuCell2, menuCell1), true, new MenuManagerCompletionListener() { + @Override + public void onComplete(final boolean success, final List<MenuCell> currentMenuCells2) { + assertOnMainThread(new Runnable() { + @Override + public void run() { + assertTrue(success); + assertEquals(2, currentMenuCells2.size()); + assertEquals("A", currentMenuCells2.get(0).getUniqueTitle()); + assertEquals("A (2)", currentMenuCells2.get(1).getUniqueTitle()); + verify(internalInterface, Mockito.times(2)).sendRPCs(any(List.class), any(OnMultipleRequestListener.class)); + } + }); + } + }); + transactionQueue.add(operation, false); + } + }); + } + }); + transactionQueue.add(operation, false); + } + private ISdl createISdlMock() { final ISdl internalInterface = mock(ISdl.class); @@ -163,8 +209,9 @@ public class MenuReplaceOperationTests { return fileManager; } - private WindowCapability createWindowCapability(boolean supportsList, boolean supportsTile) { + private WindowCapability createWindowCapability(boolean supportsList, boolean supportsTile, ArrayList<TextField> supportedTextFields) { WindowCapability windowCapability = new WindowCapability(); + windowCapability.setTextFields(supportedTextFields); windowCapability.setMenuLayoutsAvailable(new ArrayList<MenuLayout>()); if (supportsList) { windowCapability.getMenuLayoutsAvailable().add(MenuLayout.LIST); |