/*******************************************************************************
* 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.piwik.model;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeyProvider.getRequestKey;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_CAMPAIGN_KEYWORD;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_CAMPAIGN_NAME;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_CUSTOM_VARIABLES;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_FIRST_VISIT;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_HOUR;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_ID;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_LANGUAGE_OVERRIDE;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_MINUTE;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_PREVIOUS_VISIT;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_REFERRER_URL;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_RESOLUTION;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_SECOND;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_USER_AGENT_OVERRIDE;
import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.VISITOR_VISITS;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
public class VisitorInformationTest {
private VisitorInformation visitorInformation;
@Before
public void setUp() {
visitorInformation = new VisitorInformation();
}
@Test
public void testParametersAreNotNull() {
Map<String, Object> parameters = visitorInformation.getParameter();
assertNotNull( parameters );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullId() throws Exception {
visitorInformation.setId( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyId() throws Exception {
visitorInformation.setId( "" );
}
@Test
public void testAddsIdToParameters() throws Exception {
visitorInformation.setId( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_ID ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullUrlRef() {
visitorInformation.setReferrerUrl( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyUrlRef() {
visitorInformation.setReferrerUrl( "" );
}
@Test
public void testAddsReferrerUrlToParameters() {
visitorInformation.setReferrerUrl( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_REFERRER_URL ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCustomVariables() {
visitorInformation.setCustomVariables( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCustomVariables() {
visitorInformation.setCustomVariables( "" );
}
@Test
public void testAddsCustomVariablesToParameters() {
visitorInformation.setCustomVariables( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_CUSTOM_VARIABLES ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNegativeVisits() {
visitorInformation.setVisits( -1 );
}
@Test
public void testAddsVisitsToParameters() {
visitorInformation.setVisits( 2 );
assertEquals( Integer.valueOf( 2 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_VISITS ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNegativePreviousVisitTimestamp() {
visitorInformation.setPreviousVisitUnixTimestamp( -1 );
}
@Test
public void testAddsPreviousVisitUnixTimestampToParameters() {
visitorInformation.setPreviousVisitUnixTimestamp( 2 );
assertEquals( Long.valueOf( 2 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_PREVIOUS_VISIT ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNegativeFirstVisitTimestamp() {
visitorInformation.setFirstVisitUnixTimestamp( -1 );
}
@Test
public void testAddsFirstVisitUnixTimestampToParameters() {
visitorInformation.setFirstVisitUnixTimestamp( 2 );
assertEquals( Long.valueOf( 2 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_FIRST_VISIT ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCampaignName() {
visitorInformation.setCampaignName( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCampaignName() {
visitorInformation.setCampaignName( "" );
}
@Test
public void testAddsCampaignNameToParameters() {
visitorInformation.setCampaignName( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_CAMPAIGN_NAME ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullCampaignKeyword() {
visitorInformation.setCampaignKeyword( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyCampaignKeyword() {
visitorInformation.setCampaignKeyword( "" );
}
@Test
public void testAddsCampaignKeywordToParameters() {
visitorInformation.setCampaignKeyword( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_CAMPAIGN_KEYWORD ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullResolution() {
visitorInformation.setScreenResolution( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyResolution() {
visitorInformation.setScreenResolution( "" );
}
@Test
public void testAddsResolutionToParameters() {
visitorInformation.setScreenResolution( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_RESOLUTION ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithHourTooLarge() {
visitorInformation.setHour( 24 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithHourTooSmall() {
visitorInformation.setHour( -1 );
}
@Test
public void testAddsHourToParameters() {
visitorInformation.setHour( 23 );
assertEquals( Integer.valueOf( 23 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_HOUR ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithMinuteTooLarge() {
visitorInformation.setMinute( 60 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithMinuteTooSmall() {
visitorInformation.setMinute( -1 );
}
@Test
public void testAddsMinuteToParameters() {
visitorInformation.setMinute( 59 );
assertEquals( Integer.valueOf( 59 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_MINUTE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithSecondTooLarge() {
visitorInformation.setSecond( 61 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithSecondTooSmall() {
visitorInformation.setSecond( -1 );
}
@Test
public void testAddsSecondToParameters() {
visitorInformation.setSecond( 59 );
assertEquals( Integer.valueOf( 59 ), visitorInformation.getParameter().get( getRequestKey( VISITOR_SECOND ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullUserAgent() {
visitorInformation.setUserAgentOverride( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyUserAgent() {
visitorInformation.setUserAgentOverride( "" );
}
@Test
public void testAddsUserAgentToParameters() {
visitorInformation.setUserAgentOverride( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_USER_AGENT_OVERRIDE ) ) );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullLanguage() {
visitorInformation.setLanguageOverride( null );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyLanguage() {
visitorInformation.setLanguageOverride( "" );
}
@Test
public void testAddsLanguageToParameters() {
visitorInformation.setLanguageOverride( "foo" );
assertEquals( "foo", visitorInformation.getParameter().get( getRequestKey( VISITOR_LANGUAGE_OVERRIDE ) ) );
}
}