void updateBreakpointPresentation(CloudLineBreakpoint cloudLineBreakpoint) { final XBreakpointManager manager = getXBreakpointManager(getXDebugSession().getProject()); manager.updateBreakpointPresentation( getXBreakpoint(cloudLineBreakpoint), cloudLineBreakpoint.getSetIcon(areBreakpointsMuted()), cloudLineBreakpoint.getErrorMessage()); }
@NotNull // mock behavior except for get/setErrorMessage() to simplify code private CloudLineBreakpoint mockCloudLineBreakpoint( CloudDebugProcess spyDebugProcess, String errorMessage, XLineBreakpointImpl xLineBreakpoint) { CloudLineBreakpoint breakpoint = mock(CloudLineBreakpoint.class); when(breakpoint.getSetIcon(anyBoolean())).thenReturn(mock(Icon.class)); doAnswer(invocationOnMock -> xLineBreakpoint).when(spyDebugProcess).getXBreakpoint(any()); when(breakpoint.getErrorMessage()).thenReturn(errorMessage); return breakpoint; } }
verify(process, times(1)).getXBreakpoint(cloudLineBreakpoint); verify(cloudLineBreakpoint).getSetIcon(anyBoolean()); verify(cloudLineBreakpoint).getErrorMessage();
@Test public void testUpdateBreakpointRepresentationUsesBreakpointErrorMsgAndIcon() { XBreakpointManager breakpointManager = mock(XBreakpointManager.class); CloudDebugProcess cloudDebugProcess = mockCloudDebugProcess(breakpointManager, mock(XDebugSession.class)); XLineBreakpointImpl xBreakpoint = mock(XLineBreakpointImpl.class); CloudLineBreakpoint breakpoint = mockCloudLineBreakpoint(cloudDebugProcess, "mock error message", xBreakpoint); Icon icon = mock(Icon.class); when(breakpoint.getSetIcon(anyBoolean())).thenReturn(icon); cloudDebugProcess.updateBreakpointPresentation(breakpoint); verify(cloudDebugProcess, times(1)).getXBreakpoint(breakpoint); verify(breakpoint).getSetIcon(anyBoolean()); verify(breakpoint).getErrorMessage(); verify(breakpointManager).updateBreakpointPresentation(xBreakpoint, icon, "mock error message"); }