/** * handles the arrival of a new UserSessionInfo object. * * @param sessionInfo * the new session info */ private void newSessionInfoReceived(UserSessionInfo sessionInfo) { Long sessionID = sessionInfo.getSessionId(); if (sessionInfoCache.getIfPresent(sessionID) != null) { return; // session info already present } sessionInfoCache.put(sessionID, sessionInfo); Iterator<AbstractEUMSpanDetails> it = missingSessionInfosMap.get(sessionID).iterator(); while (it.hasNext()) { AbstractEUMSpanDetails next = it.next(); it.remove(); tryPointBuildingForPendingElement(next); } }
@BeforeMethod public void setup() { subBuilder = new DummyPointBuilder(); builder = new EUMCachingParentPointBuilder(Collections.<AbstractEUMPointBuilder<?>> singletonList(subBuilder)); when(sessionInfo.getSessionId()).thenReturn(SESSION_ID); EUMSpan plrSpan = Mockito.mock(EUMSpan.class); when(plrSpan.getDetails()).thenReturn(pageLoadRequest); when(pageLoadRequest.getOwningSpan()).thenReturn(plrSpan); when(plrSpan.getTabId()).thenReturn(TAB_ID); when(plrSpan.getSessionId()).thenReturn(SESSION_ID); }
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)); }