package org.esmerilprogramming.overtown.http.converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.esmerilprogramming.overtown.http.OvertownRequest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class GenericConverterTest {
@Mock OvertownRequest request;
class MyObject{
}
class MyObjectConverter extends GenericConverter<MyObject>{
@Override
public MyObject convert(String value) {
if(value != null){
return new MyObject();
}
return null;
}
}
class UpperStringConverter extends GenericConverter<String>{
@Override
public String convert(String value) {
return value.toUpperCase();
}
}
class MyDateFormatConverter extends GenericConverter<Date>{
@Override
public Date convert(String value) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy");
try {
return sdf.parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
@Test
public void doesCOnvertAParameterStringTOUpperString(){
ParameterConverter converter = new UpperStringConverter();
when( request.getParameter("name")).thenReturn("Efraim Gentil");
String translate = converter.translate(String.class , "name", request);
System.out.println(translate);
}
@Test
public void doesConvertAStringParameterToDateADate(){
ParameterConverter converter = new MyDateFormatConverter();
when(request.getParameter("myDate")).thenReturn("02/2014");
Date translate = converter.translate(Date.class , "myDate", request);
System.out.println(translate);
}
}