/******************************************************************************* * 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.action; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeyProvider.getRequestKey; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ACTION_GOAL_ID; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_DISCOUNT; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_ID; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_ITEMS; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_SHIPPING; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_SUBTOTAL; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_TAX; import static com.eclipsesource.tabris.tracking.internal.piwik.request.RequestKeys.ECOMMERCE_ORDER_TOTAL; import static org.junit.Assert.assertEquals; import java.math.BigDecimal; import org.junit.Test; public class EcommerceActionTest { @Test public void testAddsIdGoal0ToParameters() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); assertEquals( Integer.valueOf( 0 ), ecommerceAction.getParameter().get( getRequestKey( ACTION_GOAL_ID ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullId() { new EcommerceAction( "foo", null, new BigDecimal( 1 ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithEmptyId() { new EcommerceAction( "foo", "", new BigDecimal( 1 ) ); } @Test public void testStoresOrderId() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); assertEquals( "bar", ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_ID ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullTotal() { new EcommerceAction( "foo", "bar", null ); } @Test public void testStoresRevenue() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 5 ) ); assertEquals( BigDecimal.valueOf( 5 ), ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_TOTAL ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullSubtotal() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setSubtotal( null ); } @Test public void testStoresSubtotal() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); ecommerceAction.setSubtotal( BigDecimal.valueOf( 5 ) ); assertEquals( BigDecimal.valueOf( 5 ), ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_SUBTOTAL ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullTax() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setTax( null ); } @Test public void testStoresTax() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); ecommerceAction.setTax( BigDecimal.valueOf( 5 ) ); assertEquals( BigDecimal.valueOf( 5 ), ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_TAX ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullShipping() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setShipping( null ); } @Test public void testStoresShipping() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); ecommerceAction.setShipping( BigDecimal.valueOf( 5 ) ); assertEquals( BigDecimal.valueOf( 5 ), ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_SHIPPING ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullDiscount() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setDiscount( null ); } @Test public void testStoresDiscount() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); ecommerceAction.setDiscount( BigDecimal.valueOf( 5 ) ); assertEquals( BigDecimal.valueOf( 5 ), ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_DISCOUNT ) ) ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithNullItemsJson() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setItems( null ); } @Test( expected = IllegalArgumentException.class ) public void testFailsWithEmptyItemsJson() { new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ).setItems( "" ); } @Test public void testStoresItemsJson() { EcommerceAction ecommerceAction = new EcommerceAction( "foo", "bar", new BigDecimal( 1 ) ); ecommerceAction.setItems( "bar" ); assertEquals( "bar", ecommerceAction.getParameter().get( getRequestKey( ECOMMERCE_ORDER_ITEMS ) ) ); } }