package ee.esutoniagodesu.web.rest;
import ee.esutoniagodesu.bean.ProjectDAO;
import ee.esutoniagodesu.domain.core.view.VCoreStats;
import ee.esutoniagodesu.repository.project.ReportDB;
import ee.esutoniagodesu.service.StatsService;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.mockito.MockitoAnnotations;
import org.springframework.http.MediaType;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import java.util.List;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
/**
* Test class for the StatsResource REST controller.
*
* @see StatsResource
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class StatsResourceTest extends WebappTestEnvironment {
private static final String USERNAME = "admin";
//------------------------------ spring ------------------------------
@Inject
private ProjectDAO dao;
@Inject
private ReportDB reportDB;
@Inject
private StatsService statsService;
@PostConstruct
public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
ReflectionTestUtils.setField(statsService, "dao", dao);
ReflectionTestUtils.setField(statsService, "reportDB", reportDB);
StatsResource resource = new StatsResource();
ReflectionTestUtils.setField(resource, "service", statsService);
mockMvc = MockMvcBuilders.standaloneSetup(resource).build();
setSession(USERNAME);
}
@Before
public void initTest() {
}
@Test
public void t1_core_stats() throws Exception {
List<VCoreStats> stats = dao.findAll(VCoreStats.class);
VCoreStats first = stats.get(0);
mockMvc.perform(get(StatsResource.BASE_URL + "/core_stats").session(session))
.andExpect(status().isOk())
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
.andExpect(jsonPath("$.[0].resource").value(first.getResource()));
}
}