/*******************************************************************************
* Copyright (c) 2014 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package com.eclipsesource.tabris.tracking.internal.analytics.model;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeyProvider.getRequestKey;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.APP_ID;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.APP_VERSION;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.SCREEN_NAME;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.CURRENCY_CODE;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.CUSTOM_DIMENSION;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.CUSTOM_METRIC;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.DOCUMENT_HOST_NAME;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.DOCUMENT_PATH;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.DOCUMENT_TITLE;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.IP_OVERRIDE;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.SCREEN_RESOLUTION;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.SESSION_CONTROL;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.USER_AGENT_OVERRIDE;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.USER_ID;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.USER_LANGUAGE;
import static com.eclipsesource.tabris.tracking.internal.analytics.request.RequestKeys.VIEWPORT_SIZE;
import static org.junit.Assert.assertEquals;
import java.util.Map;
import org.junit.Test;
public class AdvancedConfigurationTest {
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullUserId() {
new AdvancedConfiguration().setUserId( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyUserId() {
new AdvancedConfiguration().setUserId( "" );
}
@Test
public void testSetsUserId() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setUserId( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( USER_ID ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullSessionControl() {
new AdvancedConfiguration().setSessionControl( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptySessionControl() {
new AdvancedConfiguration().setSessionControl( "" );
}
@Test
public void testSetsSessionControl() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setSessionControl( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( SESSION_CONTROL ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullIpOverride() {
new AdvancedConfiguration().setIpOverride( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyIpOverride() {
new AdvancedConfiguration().setIpOverride( "" );
}
@Test
public void testSetsIpOverride() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setIpOverride( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( IP_OVERRIDE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullUserAgentOverride() {
new AdvancedConfiguration().setUserAgentOverride( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyUserAgentOverride() {
new AdvancedConfiguration().setUserAgentOverride( "" );
}
@Test
public void testSetsUserAgentOverride() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setUserAgentOverride( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( USER_AGENT_OVERRIDE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullScreenResolution() {
new AdvancedConfiguration().setScreenResolution( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyScreenResolution() {
new AdvancedConfiguration().setScreenResolution( "" );
}
@Test
public void testSetsScreenResolution() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setScreenResolution( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( SCREEN_RESOLUTION ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullViewportSize() {
new AdvancedConfiguration().setViewportSize( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyViewportSize() {
new AdvancedConfiguration().setViewportSize( "" );
}
@Test
public void testSetsViewportSize() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setViewportSize( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( VIEWPORT_SIZE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullUserLanguage() {
new AdvancedConfiguration().setUserLanguage( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyUserLanguage() {
new AdvancedConfiguration().setUserLanguage( "" );
}
@Test
public void testSetsUserLanguage() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setUserLanguage( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( USER_LANGUAGE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullAppId() {
new AdvancedConfiguration().setAppId( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyAppId() {
new AdvancedConfiguration().setAppId( "" );
}
@Test
public void testSetsAppId() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setAppId( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( APP_ID ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullAppVersion() {
new AdvancedConfiguration().setAppVersion( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyAppVersion() {
new AdvancedConfiguration().setAppVersion( "" );
}
@Test
public void testSetsAppVersion() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setAppVersion( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( APP_VERSION ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullDocumentHostName() {
new AdvancedConfiguration().setDocumentHostName( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyDocumentHostName() {
new AdvancedConfiguration().setDocumentHostName( "" );
}
@Test
public void testSetsDocumentHostName() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setDocumentHostName( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( DOCUMENT_HOST_NAME ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullDocumentPath() {
new AdvancedConfiguration().setDocumentPath( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyDocumentPath() {
new AdvancedConfiguration().setDocumentPath( "" );
}
@Test
public void testSetsDocumentPath() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setDocumentPath( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( DOCUMENT_PATH ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullDocumentSettings() {
new AdvancedConfiguration().setDocumentTitle( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyDocumentSettings() {
new AdvancedConfiguration().setDocumentTitle( "" );
}
@Test
public void testSetsDocumentSettings() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setDocumentTitle( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( DOCUMENT_TITLE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullScreenName() {
new AdvancedConfiguration().setScreenName( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyScreenName() {
new AdvancedConfiguration().setScreenName( "" );
}
@Test
public void testSetsScreenName() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setScreenName( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( SCREEN_NAME ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCurrencyCode() {
new AdvancedConfiguration().setCurrencyCode( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCurrencyCode() {
new AdvancedConfiguration().setCurrencyCode( "" );
}
@Test
public void testSetsCurrencyCode() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setCurrencyCode( "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( CURRENCY_CODE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomDimension() {
new AdvancedConfiguration().setCustomDimension( 2, null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCustomDimension() {
new AdvancedConfiguration().setCustomDimension( 2, "" );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomDimensionIndexSmallerZero() {
new AdvancedConfiguration().setCustomDimension( -1, "foo" );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomDimensionIndexEqualZero() {
new AdvancedConfiguration().setCustomDimension( 0, "foo" );
}
@Test
public void testSetsCustomDimension() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setCustomDimension( 2, "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( CUSTOM_DIMENSION, 2 ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomMetric() {
new AdvancedConfiguration().setCustomMetric( 2, null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCustomMetric() {
new AdvancedConfiguration().setCustomMetric( 2, "" );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomMetricIndexSmallerZero() {
new AdvancedConfiguration().setCustomMetric( -1, "foo" );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomMetricIndexEqualZero() {
new AdvancedConfiguration().setCustomMetric( 0, "foo" );
}
@Test
public void testSetsCustomMetric() {
AdvancedConfiguration configuration = new AdvancedConfiguration().setCustomMetric( 2, "foo" );
Map<String, Object> parameter = configuration.getParameter();
assertEquals( "foo", parameter.get( getRequestKey( CUSTOM_METRIC, 2 ) ) );
}
}