Newer
Older
package it.inaf.oats.vospace;
import static it.inaf.oats.vospace.VOSpaceXmlTestUtil.loadDocument;
import it.inaf.oats.vospace.persistence.JobDAO;
import java.util.Optional;
import net.ivoa.xml.uws.v1.JobSummary;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.w3c.dom.Document;
@SpringBootTest
@AutoConfigureMockMvc
public class TransferControllerTest {
@MockBean
private JobDAO dao;
@Autowired
private MockMvc mockMvc;
@Test
public void testGetJob() throws Exception {
JobSummary job = new JobSummary();
when(dao.getJob(eq("123"))).thenReturn(Optional.of(job));
String xml = mockMvc.perform(get("/transfers/123")
.accept(MediaType.APPLICATION_XML))
.andDo(print())
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString();
Document doc = loadDocument(xml);
assertEquals("uws:job", doc.getDocumentElement().getNodeName());
verify(dao, times(1)).getJob(eq("123"));
}
}