package com.flextrade.jfixture.customisation; import com.flextrade.jfixture.NoSpecimen; import com.flextrade.jfixture.SpecimenContext; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.verify; public class TestSubTypeRelay { private SubTypeRelay builder; @Mock private SpecimenContext mockContext; @Before public void initialise() { MockitoAnnotations.initMocks(this); this.builder = new SubTypeRelay(List.class, ArrayList.class); } @Test public void non_class_request_returns_no_specimen() { Object result = builder.create("string", mockContext); assertEquals(new NoSpecimen(), result); } @Test public void request_class_does_not_equal_base_class_returns_no_specimen() { Object result = builder.create(Integer.class, mockContext); assertEquals(new NoSpecimen(), result); } @Test public void request_class_equals_base_class_passes_sub_class_to_context() { builder.create(List.class, mockContext); verify(mockContext).resolve(ArrayList.class); } }