/*******************************************************************************
* 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;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.mockito.Mockito.mock;
import org.junit.Test;
import com.eclipsesource.tabris.tracking.TrackingEvent.EventType;
public class TrackingEventTest {
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullType() {
new TrackingEvent( null, mock( TrackingInfo.class ), new Object(), 1 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullInfo() {
new TrackingEvent( EventType.PAGE_VIEW, null, new Object(), 1 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullDetail() {
new TrackingEvent( EventType.PAGE_VIEW, mock( TrackingInfo.class ), null, 1 );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNegativeTimestamp() {
new TrackingEvent( EventType.PAGE_VIEW, mock( TrackingInfo.class ), new Object(), -1 );
}
@Test
public void testHasType() {
TrackingEvent event = new TrackingEvent( EventType.PAGE_VIEW, mock( TrackingInfo.class ), new Object(), 1 );
EventType type = event.getType();
assertSame( EventType.PAGE_VIEW, type );
}
@Test
public void testHasTrackingInfo() {
TrackingInfo info = mock( TrackingInfo.class );
TrackingEvent event = new TrackingEvent( EventType.PAGE_VIEW, info, new Object(), 1 );
TrackingInfo actualInfo = event.getInfo();
assertSame( info, actualInfo );
}
@Test
public void testHasDetail() {
Object detail = new Object();
TrackingEvent event = new TrackingEvent( EventType.PAGE_VIEW, mock( TrackingInfo.class ), detail, 1 );
Object actualDetail = event.getDetail();
assertSame( detail, actualDetail );
}
@Test
public void testHasTimestamp() {
Object detail = new Object();
TrackingEvent event = new TrackingEvent( EventType.PAGE_VIEW, mock( TrackingInfo.class ), detail, 23 );
long timestamp = event.getTimestamp();
assertEquals( 23, timestamp );
}
}