package org.esmerilprogramming.overtown.http.converter; import org.esmerilprogramming.overtown.http.OvertownRequest; import org.junit.Before; import org.junit.Test; import static org.mockito.Mockito.*; import static org.junit.Assert.*; public class LongConverterTest { private LongConverter translator; @Before public void setUp() { translator = new LongConverter(); } @Test public void givenALongParameterIdShouldTranslateTheValueToLongObject() { String paramName = "id"; OvertownRequest request = mock(OvertownRequest.class); when(request.getParameter(paramName)).thenReturn("10"); Long value = translator.translate(Long.class, paramName, request); assertSame("Translated value should be a long 10", 10l, value); } @Test public void givenALongParameterButWithANullValueInRequestShouldReturnNull() { String paramName = "id"; OvertownRequest request = mock(OvertownRequest.class); when(request.getParameter(paramName)).thenReturn(null); Long value = translator.translate(Long.class, paramName, request); assertSame("Translated value should have returned null ", null, value); } @Test public void givenALongParameterAndARequestWithWrongParameterTypeShouldReturnNull() { String paramName = "id"; OvertownRequest request = mock(OvertownRequest.class); when(request.getParameter(paramName)).thenReturn("NOT A NUMBER"); Long value = translator.translate(Long.class, paramName, request); assertSame("Translated value should have returned null ", null, value); } }