Sunday, June 15, 2014

mockito starting template


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;

@RunWith( MockitoJUnitRunner.class )
public class DaoTest {

    @InjectMocks
    private  Dao dao;

    @Mock
    private Manager managerMock;
    @Mock
    private ViewManager viewManager;

    // mocks needed just to prevent NPE - listed as protected to avoid java unused warnings
    @Mock
    protected Utils utilsMock;
    @Mock
    private CurrentUser currentUserMock;
 
    @Before
    public void setup() {
        User user = new User();
        Mockito.doReturn( user ).when( currentUserMock ).get();

        Mockito.doReturn( "Engineer" ).when( currentUserMock ).getTitle(Mockito.any( Locale.class ) );

        Mockito.doReturn( Long.valueOf(100000) ).when( currentUserMock ).getIncome(Mockito.eq( "USD" ) );

    }

    @Test
    public void testCreateNewThing() {
       
         Thing thing = dao.createNewThing( currentUser );
         
        // assertions
        assertNotNull( thing );
    }


}