Package br.com.bfmapper.converter.transformer

Source Code of br.com.bfmapper.converter.transformer.DateTimeTransformerTest

package br.com.bfmapper.converter.transformer;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

import org.junit.Assert;
import org.junit.Test;

import br.com.bfmapper.transformer.DateTimeTransformer;

public class DateTimeTransformerTest {

  private static final String TEST_PATTERN_DATE_1 = "dd-MM-yyyy";
 
  private static final String TEST_PATTERN_DATE_2 = "dd/MM/yyyy";
 
  private static final String TEST_PATTERN_DATE_3 = "yyyyMMdd";
 
  @Test
  public void transformerStringToDate() throws ParseException {
    String value = "26-03-2010";
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_1);
    Date transform = new DateTimeTransformer(TEST_PATTERN_DATE_1).transform(value, Date.class);

    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor",
        transform, format.parse(value));
  }

  @Test
  public void transformerDateToString() {
    java.util.Date value = new java.util.Date();
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_1);
    String transform = new DateTimeTransformer(TEST_PATTERN_DATE_1).transform(value, String.class);

    Assert.assertNotNull("Objeto String não pode ser null", transform);
    Assert.assertEquals("Objeto String deve ser compativel com outro objeto String de mesmo valor",
        transform.toString(), format.format(value));
  }

  @Test
  public void transformerDateToCalendar() {
    java.util.Date value = new java.util.Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(value);
   
    Calendar transform = new DateTimeTransformer().transform(value, Calendar.class);

    Assert.assertNotNull("Objeto Calendar não pode ser null", transform);
    Assert.assertEquals("Objeto Calendar deve ser compativel com outro objeto Calendar de mesmo valor", transform, calendar);
  }

  @Test
  public void transformerCalendarToDate() {
    java.util.Date date = new java.util.Date();
    Calendar value = Calendar.getInstance();
    value.setTime(date);
   
    Date transform = new DateTimeTransformer().transform(value, java.util.Date.class);

    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor", transform, date);
  }

  @Test
  public void transformerStringToCalendar() throws ParseException {
    String value = "28/03/2010";
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_2);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(format.parse(value));
   
    Calendar transform = new DateTimeTransformer(TEST_PATTERN_DATE_2).transform(value, Calendar.class);

    Assert.assertNotNull("Objeto Calendar não pode ser null", transform);
    Assert.assertEquals("Objeto Calendar deve ser compativel com outro objeto Calendar de mesmo valor", transform, calendar);
  }
 
  @Test
  public void transformerCalendarToString() throws ParseException {
    String stringDate = "28/03/2010";
   
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_2);
    Calendar value = Calendar.getInstance();
    value.setTime(format.parse(stringDate));
   
    String transform = new DateTimeTransformer(TEST_PATTERN_DATE_2).transform(value, String.class);

    Assert.assertNotNull("Objeto String não pode ser null", transform);
    Assert.assertEquals("Objeto String deve ser compativel com outro objeto String de mesmo valor", transform.toString(), stringDate);
  }
 
  @Test
  public void transformerLongToDate() {
    Long value = 1269784952229L; // 28-03-2010 11:02:32
    java.util.Date date = new java.util.Date(value);
   
    Date transform = new DateTimeTransformer().transform(value, java.util.Date.class);

    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor", transform, date);
  }
 
  @Test
  public void transformerDateToLong() {
    Long timeMillis = 1269784952229L; // 28-03-2010 11:02:32
    java.util.Date value = new java.util.Date(timeMillis);
   
    Long transform = new DateTimeTransformer().transform(value, Long.class);

    Assert.assertNotNull("Objeto Long não pode ser null", transform);
    Assert.assertEquals("Objeto Long deve ser compativel com outro objeto Long de mesmo valor", transform, timeMillis);
  }

  @Test
  public void transformerLongAsDateToDate() throws ParseException {
    Long value = 20100328L;
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_3);
    java.util.Date date = format.parse(value.toString());
   
    Date transform = new DateTimeTransformer(TEST_PATTERN_DATE_3, true).transform(value, java.util.Date.class);

    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor", transform, date);
  }
 
  @Test
  public void transformerDateToLongAsDate() throws ParseException {
    Long longDate = 20100328L;
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_3);
    java.util.Date value = format.parse(longDate.toString());
   
    Long transform = new DateTimeTransformer(TEST_PATTERN_DATE_3, true).transform(value, Long.class);

    Assert.assertNotNull("Objeto Long não pode ser null", transform);
    Assert.assertEquals("Objeto Long deve ser compativel com outro objeto Long de mesmo valor", transform, longDate);
  }

  @Test
  public void transformerLongToCalendar() {
    Long value = 1269784952229L; // 28-03-2010 11:02:32
   
    java.util.Date date = new java.util.Date(value);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
   
    Calendar transform = new DateTimeTransformer().transform(value, Calendar.class);

    Assert.assertNotNull("Objeto Calendar não pode ser null", transform);
    Assert.assertEquals("Objeto Calendar deve ser compativel com outro objeto Calendar de mesmo valor", transform, calendar);
  }

  @Test
  public void transformerCalendarToLong() {
    Long timeMillis = 1269784952229L; // 28-03-2010 11:02:32
   
    java.util.Date date = new java.util.Date(timeMillis);
    Calendar value = Calendar.getInstance();
    value.setTime(date);
   
    Long transform = new DateTimeTransformer().transform(value, Long.class);

    Assert.assertNotNull("Objeto Long não pode ser null", transform);
    Assert.assertEquals("Objeto Long deve ser compativel com outro objeto Long de mesmo valor", transform, timeMillis);
  }
 
  @Test
  public void transformerLongAsDateToCalendar() throws ParseException {
    Long value = 20100328L;
   
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_3);
    java.util.Date date = format.parse(value.toString());
   
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
   
    Calendar transform = new DateTimeTransformer(TEST_PATTERN_DATE_3, true).transform(value, Calendar.class);

    Assert.assertNotNull("Objeto Calendar não pode ser null", transform);
    Assert.assertEquals("Objeto Calendar deve ser compativel com outro objeto Calendar de mesmo valor", transform, calendar);
  }

  @Test
  public void transformerCalendarToLongAsDate() throws ParseException {
    Long longAsDate = 20100328L;
   
    DateFormat format = new SimpleDateFormat(TEST_PATTERN_DATE_3);
    java.util.Date date = format.parse(longAsDate.toString());
   
    Calendar value = Calendar.getInstance();
    value.setTime(date);
   
    Long transform = new DateTimeTransformer(TEST_PATTERN_DATE_3, true).transform(value, Long.class);

    Assert.assertNotNull("Objeto Long não pode ser null", transform);
    Assert.assertEquals("Objeto Long deve ser compativel com outro objeto Long de mesmo valor", transform, longAsDate);
  }

  @Test
  public void transformerDateToXMLGregorianCalendar() throws ParseException, DatatypeConfigurationException {
    java.util.Date value = new java.util.Date();

    XMLGregorianCalendar transform = new DateTimeTransformer().transform(value, XMLGregorianCalendar.class);
   
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(value);
   
    Assert.assertNotNull("Objeto XMLGregorianCalendar não pode ser null", transform);
    Assert.assertEquals("Objeto XMLGregorianCalendar deve ser compativel com outro objeto XMLGregorianCalendar de mesmo valor", transform, DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar));
  }
 
  @Test
  public void transformerXMLGregorianCalendarToDate() throws ParseException, DatatypeConfigurationException {
    java.util.Date date = new java.util.Date();

    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(date);
    XMLGregorianCalendar value = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
   
    java.util.Date transform = new DateTimeTransformer().transform(value, java.util.Date.class);
   
    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor", transform, date);
  }

    @Test
    public void transformerXMLGregorianCalendarToCalendar() throws ParseException, DatatypeConfigurationException {
        Calendar calendar = Calendar.getInstance();
       
        XMLGregorianCalendar value = DatatypeFactory.newInstance().newXMLGregorianCalendar((GregorianCalendar) calendar);
       
        Calendar transform = new DateTimeTransformer().transform(value, Calendar.class);
       
        Assert.assertNotNull("Objeto calendar pode ser null", transform);
        Assert.assertEquals("Objeto calendar deve ser compativel com outro objeto calendar de mesmo valor", transform, calendar);
    }
 
    @Test
    public void transformerCalendarToXMLGregorianCalendar() throws ParseException, DatatypeConfigurationException {
        Calendar calendar = Calendar.getInstance();
        XMLGregorianCalendar transform = new DateTimeTransformer().transform(calendar, XMLGregorianCalendar.class);
       
        GregorianCalendar gregorianCalendar = new GregorianCalendar();
        gregorianCalendar.setTime(calendar.getTime());
       
        Assert.assertNotNull("Objeto XMLGregorianCalendar não pode ser null", transform);
        Assert.assertEquals("Objeto XMLGregorianCalendar deve ser compativel com outro objeto XMLGregorianCalendar de mesmo valor", transform, DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar));
    }

   
    @Test
  public void transformerUtilDateToSqlDate() {
    java.util.Date value = new java.util.Date();
    java.sql.Date sqlDate = new java.sql.Date(value.getTime());

    java.sql.Date transform = new DateTimeTransformer().transform(value, java.sql.Date.class);

    Assert.assertNotNull("Objeto java.sql.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.sql.Date deve ser compativel com outro objeto java.sql.Date de mesmo valor", transform, sqlDate);
  }

  @Test
  public void transformerSqlDateToUtilDate() {
    java.util.Date utilDate = new java.util.Date();

    java.sql.Date value = new java.sql.Date(utilDate.getTime());
    java.util.Date transform = new DateTimeTransformer().transform(value, java.util.Date.class);

    Assert.assertNotNull("Objeto java.util.Date não pode ser null", transform);
    Assert.assertEquals("Objeto java.util.Date deve ser compativel com outro objeto java.util.Date de mesmo valor", transform, utilDate);
  }
 
  @Test(expected=IllegalArgumentException.class)
  public void requiredPatternToParse() {
    new DateTimeTransformer().transform("20100328", Calendar.class);
  }

  @Test(expected=IllegalArgumentException.class)
  public void requiredPatternToFormat() {
    new DateTimeTransformer().transform(new java.util.Date(), String.class);
  }
 
  @Test
  public void transformerNull() {
    Assert.assertNull("Conversao para valor null deve ser null", new DateTimeTransformer().transform(null, Long.class));
  }
 
  @Test
  public void transformerEmpty() {
    Assert.assertNull("Conversao para valor empty deve ser null", new DateTimeTransformer().transform("", Long.class));
  }
 
  @Test(expected=IllegalArgumentException.class)
  public void transformerInvalidTypes() {
    new DateTimeTransformer().transform(Enum.class, Character.class);
  }

}
TOP

Related Classes of br.com.bfmapper.converter.transformer.DateTimeTransformerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.