package co.smartreceipts.android.utils;
import android.os.Environment;
import junit.framework.Assert;
import java.io.File;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.TimeZone;
import co.smartreceipts.android.model.PriceCurrency;
import co.smartreceipts.android.model.Trip;
import co.smartreceipts.android.model.factory.ExchangeRateBuilderFactory;
import co.smartreceipts.android.model.factory.TripBuilderFactory;
import co.smartreceipts.android.model.impl.ImmutablePriceImpl;
public class TripUtils {
public static class Constants {
public static final String CURRENCY_CODE = "USD";
public static final PriceCurrency CURRENCY = PriceCurrency.getInstance(CURRENCY_CODE); // 1
public static final String DEFAULT_CURRENCY_CODE = "USD";
public static final PriceCurrency DEFAULT_CURRENCY = PriceCurrency.getInstance(DEFAULT_CURRENCY_CODE); // 1
public static final long START_DATE_MILLIS = 1409703721000L; // 09/02/2014 @ 8:22EDT
public static final Date START_DATE = new Date(START_DATE_MILLIS);
public static final String SLASH_FORMATTED_START_DATE = "Sep/02/2014";
public static final String DASH_FORMATTED_START_DATE = "Sep-02-2014";
public static final long END_DATE_MILLIS = 1409703794000L; // 09/02/2014 @ 8:23EDT
public static final Date END_DATE = new Date(END_DATE_MILLIS);
public static final String SLASH_FORMATTED_END_DATE = "Sep/02/2014";
public static final String DASH_FORMATTED_END_DATE = "Sep-02-2014";
public static final File DIRECTORY = new File(Environment.getExternalStorageDirectory(), "Report");
public static final String DIRECTORY_NAME = "Report";
public static final TimeZone START_TIMEZONE = TimeZone.getTimeZone("America/New_York");
public static final String START_TIMEZONE_CODE = START_TIMEZONE.getID();
public static final TimeZone END_TIMEZONE = TimeZone.getTimeZone("America/New_York");
public static final String END_TIMEZONE_CODE = END_TIMEZONE.getID();
public static final String COMMENT = "Comment";
public static final String COST_CENTER = "Cost Center";
public static final double PRICE = 12.55d;
public static final String DECIMAL_FORMATTED_PRICE = "12.55";
public static final String CURRENCY_FORMATTED_PRICE = "$12.55";
public static final double DAILY_SUBTOTAL = 1.25d;
public static final String DECIMAL_FORMATTED_SUBTOTAL = "1.25";
public static final String CURRENCY_FORMATTED_SUBTOTAL = "$1.25";
public static final float MILEAGE = 40.3121f;
}
public static TripBuilderFactory newDefaultTripBuilderFactory() {
final TripBuilderFactory factory = new TripBuilderFactory().setDirectory(Constants.DIRECTORY)
.setComment(Constants.COMMENT)
.setCostCenter(Constants.COST_CENTER)
.setDefaultCurrency(Constants.DEFAULT_CURRENCY)
.setStartDate(Constants.START_DATE)
.setStartTimeZone(Constants.START_TIMEZONE)
.setEndDate(Constants.END_DATE)
.setEndTimeZone(Constants.END_TIMEZONE);
return factory;
}
public static Trip newDefaultTrip() {
final Trip trip = newDefaultTripBuilderFactory().build();
trip.setPrice(new ImmutablePriceImpl(new BigDecimal(Constants.PRICE), Constants.CURRENCY, new ExchangeRateBuilderFactory().setBaseCurrency(Constants.CURRENCY).build()));
trip.setDailySubTotal(new ImmutablePriceImpl(new BigDecimal(Constants.DAILY_SUBTOTAL), Constants.CURRENCY, new ExchangeRateBuilderFactory().setBaseCurrency(Constants.CURRENCY).build()));
return trip;
}
public static void assertFieldEquality(Trip trip1, Trip trip2) {
Assert.assertEquals(trip1.getDirectory(), trip2.getDirectory());
Assert.assertEquals(trip1.getStartDate(), trip2.getStartDate());
Assert.assertEquals(trip1.getStartTimeZone(), trip2.getStartTimeZone());
Assert.assertEquals(trip1.getEndDate(), trip2.getEndDate());
Assert.assertEquals(trip1.getEndTimeZone(), trip2.getEndTimeZone());
Assert.assertEquals(trip1.getPrice(), trip2.getPrice());
Assert.assertEquals(trip1.getDailySubTotal(), trip2.getDailySubTotal());
Assert.assertEquals(trip1.getComment(), trip2.getComment());
Assert.assertEquals(trip1.getCostCenter(), trip2.getCostCenter());
}
}