/*******************************************************************************
* 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.ecommerce;
import static org.junit.Assert.assertEquals;
import java.math.BigDecimal;
import java.util.ArrayList;
import org.junit.Test;
public class EcommerceItemsBuilderTest {
@Test( expected = IllegalArgumentException.class )
public void testFailsWithNullItemsList() {
new EcommerceItemsBuilder( null );
}
@Test
public void testSetsItems() {
ArrayList<EcommerceItem> list = new ArrayList<EcommerceItem>();
list.add( new EcommerceItem( "foo" ) );
EcommerceItemsBuilder builder = new EcommerceItemsBuilder( list );
assertEquals( list, builder.getItems() );
}
@Test
public void testBuildsJson() {
EcommerceItem item = createItem();
ArrayList<EcommerceItem> items = new ArrayList<EcommerceItem>();
items.add( item );
EcommerceItemsBuilder builder = new EcommerceItemsBuilder( items );
assertEquals( "[[\"sku\",\"name\",\"category\",30,2]]", builder.buildJson() );
}
private EcommerceItem createItem() {
EcommerceItem item = new EcommerceItem( "name" );
item.setSku( "sku" );
item.setCategory( "category" );
item.setPrice( BigDecimal.valueOf( 30 ) );
item.setQuantity( 2 );
return item;
}
@Test
public void testBuildsJsonWithMissingOptionalItemAttributes() {
EcommerceItem item = new EcommerceItem( "foo" );
ArrayList<EcommerceItem> items = new ArrayList<EcommerceItem>();
items.add( item );
EcommerceItemsBuilder builder = new EcommerceItemsBuilder( items );
assertEquals( "[[\"\",\"foo\",\"\",0,0]]", builder.buildJson() );
}
@Test( expected = IllegalArgumentException.class )
public void testFailsWithEmptyItemsList() {
new EcommerceItemsBuilder( new ArrayList<EcommerceItem>() );
}
}