I'm mocking my MemberServiceImpl class. In particular the following getMembers() method which returns List<Golfer>:
@Service
public class MemberServiceImpl implements MemberService {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
MemberRepository repository;
@Override
public List<Golfer> getMembers() {
List<Golfer> members = repository.findAll();
return members;
}
In my MemberControllerTest class I create a list of golfers and the use the when thenReturn(members) before sending my GET request - which always returns an empty list. Any ideas what I am doing wrong:
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
class MemberControllerTest {
@Mock
MemberService memberService;
@InjectMocks
MemberController memberController = new MemberController();
@Autowired
private TestRestTemplate restTemplate;
//bind RANDOM_PORT
@LocalServerPort
private int port;
private String name = "David";
private Golfer member = new Golfer("David");
private HttpHeaders headers = new HttpHeaders();
private String baseUrl = "http://localhost:";
@Test
void testGetAllMembers() throws Exception{
restTemplate = new TestRestTemplate();
HttpHeaders headers = new HttpHeaders();
Golfer member1 = new Golfer("Harry");
Golfer member2 = new Golfer("Maureen");
List<Golfer> members = new ArrayList<Golfer>();
members.add(member1);
members.add(member2);
when(memberService.getMembers()).thenReturn(members);
ResponseEntity<List<Golfer>> response = restTemplate.exchange("http://localhost:"+port, HttpMethod.GET, null, new ParameterizedTypeReference<List<Golfer>>() {});
assertEquals(members,response.getBody());
}
}