package org.esmerilprogramming.overtown.http.converter; import static org.mockito.Mockito.*; import static org.junit.Assert.*; import org.esmerilprogramming.overtown.http.OvertownRequest; import org.junit.Before; import org.junit.Test; public class IntegerConverterTest { private IntegerConverter translator; @Before public void setUp() { translator = new IntegerConverter(); } @Test public void givenAIntegerParameterIdShouldTranslateTheValueToLongObject() { String paramName = "id"; OvertownRequest cloverRequest = mock(OvertownRequest.class); when(cloverRequest.getParameter(paramName)).thenReturn("10"); Integer value = translator.translate(Integer.class, paramName, cloverRequest); assertSame("Translated value should be a integer 10", 10, value); } @Test public void givenAIntegerParameterButWithANullValueInRequestShouldReturnNull() { String paramName = "id"; OvertownRequest cloverRequest = mock(OvertownRequest.class); when(cloverRequest.getParameter(paramName)).thenReturn(null); Integer value = translator.translate(Integer.class, paramName, cloverRequest); assertSame("Translated value should have returned null ", null, value); } @Test public void givenAIntegerParameterAndARequestWithWrongParameterTypeShouldReturnNull() { String paramName = "id"; OvertownRequest cloverRequest = mock(OvertownRequest.class); when(cloverRequest.getParameter(paramName)).thenReturn("NOT A NUMBER"); Integer value = translator.translate(Integer.class, paramName, cloverRequest); assertSame("Translated value should have returned null ", null, value); } }