/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package de.unioninvestment.eai.portal.support.vaadin.junit; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import javax.portlet.PortletContext; import javax.portlet.PortletPreferences; import javax.portlet.PortletRequest; import javax.portlet.PortletResponse; import javax.portlet.PortletSession; import javax.portlet.ResourceRequest; import javax.portlet.ResourceResponse; import org.junit.rules.TestWatchman; import org.junit.runners.model.FrameworkMethod; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import com.vaadin.data.util.converter.DefaultConverterFactory; import com.vaadin.server.Page; import com.vaadin.server.VaadinPortletRequest; import com.vaadin.server.VaadinPortletResponse; import com.vaadin.server.VaadinPortletSession; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinResponse; import com.vaadin.server.VaadinService; import com.vaadin.server.VaadinSession; import com.vaadin.ui.ConnectorTracker; import com.vaadin.ui.JavaScript; import com.vaadin.ui.Notification.Type; import com.vaadin.ui.UI; import com.vaadin.util.CurrentInstance; import de.unioninvestment.eai.portal.support.vaadin.CrudVaadinPortletService; import de.unioninvestment.eai.portal.support.vaadin.LiferayUI; @SuppressWarnings("deprecation") public class LiferayContext extends TestWatchman { private String portletId; private long communityId; @Mock private LiferayUI uiMock; @Mock private Page pageMock; @Mock private VaadinPortletResponse vaadinPortletResponseMock; @Mock private ResourceResponse portletResponseMock; @Mock private VaadinPortletRequest vaadinPortletRequestMock; @Mock private ResourceRequest portletRequestMock; @Mock private PortletSession portletSessionMock; @Mock private PortletContext portletContextMock; @Mock private PortletPreferences portletPreferencesMock; @Mock private VaadinPortletSession vaadinPortletSessionMock; @Mock private CrudVaadinPortletService vaadinPortletServiceMock; @Mock private ConnectorTracker connectorTrackerMock; @Mock private JavaScript javascriptMock; public LiferayContext() { initialize(); } public LiferayContext(String portletId, long communityId) { this.portletId = portletId; this.communityId = communityId; initialize(); } private void initialize() { MockitoAnnotations.initMocks(this); UI.setCurrent(uiMock); if (portletId != null) { when(uiMock.getPortletId()).thenReturn(portletId); when(uiMock.getCommunityId()).thenReturn(communityId); } when(uiMock.getPage()).thenReturn(pageMock); when(uiMock.getConnectorTracker()).thenReturn(connectorTrackerMock); when(pageMock.getJavaScript()).thenReturn(javascriptMock); CurrentInstance.set(VaadinResponse.class, vaadinPortletResponseMock); when(vaadinPortletResponseMock.getPortletResponse()).thenReturn( portletResponseMock); CurrentInstance.set(VaadinRequest.class, vaadinPortletRequestMock); when(vaadinPortletRequestMock.getPortletRequest()).thenReturn( portletRequestMock); when(portletRequestMock.getPortletSession()).thenReturn( portletSessionMock); when(portletSessionMock.getPortletContext()).thenReturn( portletContextMock); when(portletRequestMock.getPreferences()).thenReturn( portletPreferencesMock); when(vaadinPortletSessionMock.getConverterFactory()).thenReturn( new DefaultConverterFactory()); when(vaadinPortletSessionMock.getPortletSession()).thenReturn(portletSessionMock); CurrentInstance.set(VaadinSession.class, vaadinPortletSessionMock); CurrentInstance.set(VaadinService.class, vaadinPortletServiceMock); } @Override public void finished(FrameworkMethod method) { CurrentInstance.clearAll(); } public void noCurrentRequest() { finished(null); } public void shouldShowNotification(String caption, String description, Type type) { verify(pageMock).showNotification( argThat(new NotificationMatcher(caption, description))); } public void shouldNotShowNotification(String caption, String description, Type type) { verify(pageMock, never()).showNotification( argThat(new NotificationMatcher(caption, description))); } public LiferayUI getUiMock() { return uiMock; } public Page getPageMock() { return pageMock; } public VaadinPortletResponse getVaadinPortletResponseMock() { return vaadinPortletResponseMock; } public PortletResponse getPortletResponseMock() { return portletResponseMock; } public VaadinPortletRequest getVaadinPortletRequestMock() { return vaadinPortletRequestMock; } public PortletRequest getPortletRequestMock() { return portletRequestMock; } public PortletSession getPortletSessionMock() { return portletSessionMock; } public PortletContext getPortletContextMock() { return portletContextMock; } public PortletPreferences getPortletPreferencesMock() { return portletPreferencesMock; } public VaadinPortletSession getVaadinSessionMock() { return vaadinPortletSessionMock; } public CrudVaadinPortletService getVaadinPortletServiceMock() { return vaadinPortletServiceMock; } }