protected void initMocks(AbstractRequest targetElement) { when(pageLoadRequestSpan.getDetails()).thenReturn(pageLoadRequest); when(pageLoadRequest.getOwningSpan()).thenReturn(pageLoadRequestSpan); when(sessionInfo.getSessionId()).thenReturn(SESSION_ID); when(pageLoadRequestSpan.getSessionId()).thenReturn(SESSION_ID); when(pageLoadRequestSpan.getTabId()).thenReturn(TAB_ID); if (targetElement != null) { EUMSpan span = Mockito.mock(EUMSpan.class); when(span.getDetails()).thenReturn(targetElement); when(targetElement.getOwningSpan()).thenReturn(span); when(span.getSessionId()).thenReturn(SESSION_ID); when(span.getTabId()).thenReturn(TAB_ID); when(targetElement.getUrl()).thenReturn(URL); } // assign data when(sessionInfo.getBrowser()).thenReturn(BROWSER); when(sessionInfo.getDevice()).thenReturn(DEVICE); when(sessionInfo.getLanguage()).thenReturn(LANGUAGE); when(pageLoadRequest.getUrl()).thenReturn(PAGELOAD_URL); }
@Test public void testSessionInfoSending() { ObjectNode beacon = new ObjectNode(JsonNodeFactory.instance); ObjectNode sessInfo = new ObjectNode(JsonNodeFactory.instance); sessInfo.put("type", "metaInfo"); sessInfo.put("browser", "Firefox"); sessInfo.put("device", "iOS"); sessInfo.put("language", "de"); beacon.put("sessionID", "" + Long.toString(SESSID_DEMOVALUE, 16)); beacon.put("tabID", "" + Long.toString(TABID_DEMOVALUE, 16)); beacon.put("activeAgentModules", MODULES_DEMOVALUE); ArrayNode data = beacon.arrayNode(); beacon.put("data", data); data.add(sessInfo); String beaconJson = beacon.toString(); dataHandler.insertBeacon(beaconJson); Mockito.verify(coreService, Mockito.times(1)).addDefaultData(any(DefaultData.class)); List<DefaultData> sent = sentElements.getAllValues(); assertThat(sent.size(), equalTo(1)); assertThat(sent.get(0), instanceOf(UserSessionInfo.class)); UserSessionInfo sentInfo = (UserSessionInfo) sent.get(0); assertThat(sentInfo.getBrowser(), equalTo("Firefox")); assertThat(sentInfo.getDevice(), equalTo("iOS")); assertThat(sentInfo.getLanguage(), equalTo("de")); assertThat(sentInfo.getSessionId(), equalTo(SESSID_DEMOVALUE)); }
/** * * Adds the basic data from {@link Series} and {@link Series#EUMBasicRequestSeries} to the * builder. Does not set the time of the point, this has to be done by the caller! * * @param sessionInfo * the sessionInfo belonging to the given request, can be null if unavailable * @param builder * the point builder for the record. * @param request * the request for which teh data point is built */ protected void addBasicRequestData(Builder builder, UserSessionInfo sessionInfo, R request) { if (sessionInfo != null) { builder.tag(Series.EUMBasicRequestSeries.TAG_BROWSER, sessionInfo.getBrowser()); builder.tag(Series.EUMBasicRequestSeries.TAG_DEVICE, sessionInfo.getDevice()); builder.tag(Series.EUMBasicRequestSeries.TAG_LANGUAGE, sessionInfo.getLanguage()); } builder.tag(Series.EUMBasicRequestSeries.TAG_URL, request.getUrl()); }