package br.com.six2six.fixturefactory;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import br.com.six2six.fixturefactory.model.User;
public class ObjectFactoryTest {
private TemplateHolder templateHolder;
private ObjectFactory objectFactory;
@Before
public void setUp() {
templateHolder = mockTemplateHolder();
objectFactory = new ObjectFactory(templateHolder);
}
@Test(expected = IllegalArgumentException.class)
public void shouldThrowExceptionForGimmeWithQuantityAndWrongNumberOfTemplates() {
objectFactory.gimme(3, Arrays.asList("template1", "template2"));
}
//hack to workaround Mockito error when trying to return a Class<?>
private TemplateHolder mockTemplateHolder() {
TemplateHolder templateHolder = mock(TemplateHolder.class);
final Class<?> clazz = User.class;
when(templateHolder.getClazz()).thenAnswer(new Answer<Class<?>>() {
@Override
public Class<?> answer(InvocationOnMock invocation) throws Throwable {
return clazz;
}
});
return templateHolder;
}
}