@Test public void shouldLogEventToSaasAnalyticsWhenUserDidnotLogIn() throws Exception { Event event = new Event(Event.Type.CDEC_FIRST_LOGIN, Collections.emptyMap()); Response response = service.logSaasAnalyticsEvent(event); assertEquals(response.getStatus(), Response.Status.ACCEPTED.getStatusCode()); verify(mockFacade).logSaasAnalyticsEvent(event, null); }
@Test public void shouldLogEventToSaasAnalyticsWhenUserLoggedIn() throws Exception { SaasUserCredentials testUserCredentials = new SaasUserCredentials(TEST_ACCESS_TOKEN, TEST_ACCOUNT_ID); service.saasUserCredentials = testUserCredentials; Event event = new Event(Event.Type.CDEC_FIRST_LOGIN, Collections.emptyMap()); Response response = service.logSaasAnalyticsEvent(event); assertEquals(response.getStatus(), Response.Status.ACCEPTED.getStatusCode()); verify(mockFacade).logSaasAnalyticsEvent(event, TEST_ACCESS_TOKEN); }
@Test public void shouldThrowBadRequestErrorIfEventHasTooManyParameters() throws Exception { SaasUserCredentials testUserCredentials = new SaasUserCredentials(TEST_ACCESS_TOKEN, TEST_ACCOUNT_ID); service.saasUserCredentials = testUserCredentials; Map<String, String> parameters = new HashMap<>(); IntStream.range(0, Event.MAX_EXTENDED_PARAMS_NUMBER + 1) .forEach(i -> parameters.put(String.valueOf(i), "a")); Event event = new Event(Event.Type.CDEC_FIRST_LOGIN, parameters); Response response = service.logSaasAnalyticsEvent(event); assertEquals(response.getStatus(), Response.Status.BAD_REQUEST.getStatusCode()); assertEquals( response.getEntity().toString(), format( "{message=The number of parameters exceeded the limit of extended parameters in %s}", Event.MAX_EXTENDED_PARAMS_NUMBER)); verify(mockFacade, never()).logSaasAnalyticsEvent(any(Event.class), any(String.class)); }