/*
jBilling - The Enterprise Open Source Billing System
Copyright (C) 2003-2011 Enterprise jBilling Software Ltd. and Emiliano Conde
This file is part of jbilling.
jbilling is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
jbilling is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with jbilling. If not, see <http://www.gnu.org/licenses/>.
*/
/**
*
* @author Brian Cowdery
* @since 10-11-2009
*/
package com.sapienter.jbilling.server.item;
import junit.framework.TestCase;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class PricingFieldTest extends TestCase {
private Date DATE_VALUE;
private String DATE_VALUE_STRING;
public PricingFieldTest() {
super();
}
public PricingFieldTest(String name) {
super(name);
Calendar calendar = GregorianCalendar.getInstance();
calendar.clear();
calendar.set(2009, 11, 16);
DATE_VALUE = calendar.getTime();
DATE_VALUE_STRING = String.valueOf(DATE_VALUE.getTime());
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testGetValue() {
PricingField string = new PricingField("str field", "Some String");
assertEquals("Some String", string.getValue());
PricingField date = new PricingField("date field", DATE_VALUE);
assertEquals(DATE_VALUE, date.getValue());
PricingField integer = new PricingField("int field", 2009);
assertEquals(2009, ((Integer) integer.getValue()).intValue());
PricingField decimal = new PricingField("decimal field", new BigDecimal("20.63"));
assertEquals(new BigDecimal("20.63").toString(), ((BigDecimal) decimal.getValue()).toString());
}
public void testGetStrValue() {
PricingField string = new PricingField("str field", "Some String");
assertEquals("Some String", string.getStrValue());
PricingField date = new PricingField("date field", DATE_VALUE);
assertEquals(DATE_VALUE_STRING, date.getStrValue());
PricingField integer = new PricingField("int field", 2009);
assertEquals("2009", integer.getStrValue());
PricingField decimal = new PricingField("decimal field", new BigDecimal("20.63"));
assertEquals("20.63", decimal.getStrValue());
}
public void testGetDateValue() {
PricingField date = new PricingField("date field", DATE_VALUE);
assertEquals(PricingField.Type.DATE, date.getType());
assertEquals(DATE_VALUE, date.getDateValue());
}
public void testGetCalendarValue() {
PricingField date = new PricingField("date field", DATE_VALUE);
assertEquals(PricingField.Type.DATE, date.getType());
Calendar calendar = date.getCalendarValue();
assertEquals(2009, calendar.get(Calendar.YEAR));
assertEquals(11, calendar.get(Calendar.MONTH));
assertEquals(16, calendar.get(Calendar.DAY_OF_MONTH));
}
public void testGetIntegerValue() {
PricingField integer = new PricingField("int field", 2009);
assertEquals(PricingField.Type.INTEGER, integer.getType());
assertEquals(2009, integer.getIntValue().intValue());
}
public void testGetDecimalValue() {
PricingField decimal = new PricingField("decimal field", new BigDecimal("20.63"));
assertEquals(PricingField.Type.DECIMAL, decimal.getType());
assertEquals(new BigDecimal("20.63"), decimal.getDecimalValue());
}
public void testGetBooleanValue() {
PricingField bool = new PricingField("boolean field", true);
assertEquals(PricingField.Type.BOOLEAN, bool.getType());
assertEquals(true, bool.getBooleanValue().booleanValue());
bool.setBooleanValue(false);
assertEquals(false, bool.getBooleanValue().booleanValue());
}
public void testEncode() {
PricingField string = new PricingField("str field", "Some String");
assertEquals("str field:1:string:Some String", PricingField.encode(string));
PricingField date = new PricingField("date field", DATE_VALUE);
assertEquals("date field:1:date:" + DATE_VALUE_STRING, PricingField.encode(date));
PricingField integer = new PricingField("int field", 2009);
assertEquals("int field:1:integer:2009", PricingField.encode(integer));
PricingField decimal = new PricingField("decimal field", new BigDecimal("20.63"));
assertEquals("decimal field:1:float:20.63", PricingField.encode(decimal));
PricingField bool = new PricingField("boolean field", true);
assertEquals("boolean field:1:boolean:true", PricingField.encode(bool));
}
public void testDecode() {
PricingField string = new PricingField("str field:1:string:Some String");
assertEquals(PricingField.Type.STRING, string.getType());
assertEquals("Some String", string.getStrValue());
PricingField date = new PricingField("date field:1:date:" + DATE_VALUE_STRING);
assertEquals(DATE_VALUE.getTime(), date.getDateValue().getTime());
PricingField integer = new PricingField("int field:1:integer:2009");
assertEquals(PricingField.Type.INTEGER, integer.getType());
assertEquals(2009, integer.getIntValue().intValue());
PricingField decimal = new PricingField("decimal field:1:float:20.63");
assertEquals(PricingField.Type.DECIMAL, decimal.getType());
assertEquals(new BigDecimal("20.63"), decimal.getDecimalValue());
PricingField bool = new PricingField("boolean field:1:boolean:true");
assertEquals(PricingField.Type.BOOLEAN, bool.getType());
assertEquals(true, bool.getBooleanValue().booleanValue());
}
}