private void useProfile(final String defSetId, final String profileId) { final Profile profile = profileManager.getProfile(defSetId, profileId); setSelectedItem(profile); }
@Override public void execute() { profileSelector.bind(this::getSession); showModal(); }
private void showModal() { final HTMLElement selectorView = profileSelector.getView().getElement(); final Bs3Modal modal = modalFactory.get(); modal.setFooterContent(new FlowPanel()); modal.setModalTitle("Choose profile"); modal.setContent(ElementWrapperWidget.getWidget(selectorView)); modal.show(); } }
public ProfileSelector bind(final Supplier<AbstractSession> sessionSupplier) { final AbstractSession session = sessionSupplier.get(); final Metadata metadata = session.getCanvasHandler().getDiagram().getMetadata(); final String definitionSetId = metadata.getDefinitionSetId(); final String profileId = metadata.getProfileId(); useDefinitionSet(definitionSetId); useProfile(definitionSetId, profileId); selector.setValueChangedCommand(() -> { final Profile item = selector.getSelectedItem(); metadata.setProfileId(item.getProfileId()); requestSessionRefreshEvent.fire(new RequestSessionRefreshEvent(session.getSessionUUID())); }); return this; }
@Before @SuppressWarnings("unchecked") public void setup() throws Exception { session = mock(AbstractSession.class); AbstractCanvasHandler canvasHandler = mock(AbstractCanvasHandler.class); Diagram diagram = mock(Diagram.class); metadata = mock(Metadata.class); when(session.getSessionUUID()).thenReturn(SESSION_UUID); when(session.getCanvasHandler()).thenReturn(canvasHandler); when(canvasHandler.getDiagram()).thenReturn(diagram); when(diagram.getMetadata()).thenReturn(metadata); when(metadata.getDefinitionSetId()).thenReturn(DEF_SET_ID); when(metadata.getProfileId()).thenReturn(PROFILE_ID); when(selector.setItemProvider(any(Function.class))).thenReturn(selector); when(selector.setTextProvider(any(Function.class))).thenReturn(selector); when(selector.setValueProvider(any(Function.class))).thenReturn(selector); when(selector.setValueChangedCommand(any(Command.class))).thenReturn(selector); when(profileManager.getProfile(eq(DEF_SET_ID), eq(PROFILE_ID))).thenReturn(profile1); when(profileManager.getProfiles(eq(DEF_SET_ID))).thenReturn(Collections.singleton(profile1)); when(profile1.getProfileId()).thenReturn(PROFILE_ID); when(profile1.getName()).thenReturn(PROFILE_NAME); tested = new ProfileSelector(selector, profileManager, requestSessionRefreshEvent); tested.init(); }
@Test public void testBind() { when(selector.getSelectedItem()).thenReturn(profile1); tested.bind(() -> session); verify(selector, times(1)).clear(); verify(selector, times(1)).addItem(eq(profile1)); ArgumentCaptor<Command> commandArgumentCaptor = ArgumentCaptor.forClass(Command.class); verify(selector, times(1)).setValueChangedCommand(commandArgumentCaptor.capture()); Command command = commandArgumentCaptor.getValue(); command.execute(); verify(metadata, times(1)).setProfileId(eq(PROFILE_ID)); ArgumentCaptor<RequestSessionRefreshEvent> eventArgumentCaptor = ArgumentCaptor.forClass(RequestSessionRefreshEvent.class); verify(requestSessionRefreshEvent, times(1)).fire(eventArgumentCaptor.capture()); RequestSessionRefreshEvent event = eventArgumentCaptor.getValue(); assertEquals(SESSION_UUID, event.getSessionUUID()); } }