package org.nextprot.api.web.controller.interaction;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
import org.junit.Ignore;
import org.junit.Test;
import org.nextprot.api.web.dbunit.base.mvc.MVCDBUnitBaseTest;
import org.springframework.test.web.servlet.ResultActions;
/**
* Testing the template for interactions
* @author dteixeira
*/
@Ignore //TOOD create a mock object
public class InteractionWebTest extends MVCDBUnitBaseTest {
@Test
public void shouldGetNormalXMLForInteraction() throws Exception {
ResultActions result = this.mockMvc.perform(get("/entry/NX_P51813/interaction.xml"));
//
// String s = result.andReturn().getResponse().getContentAsString();
// System.out.println(s);
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='SILVER']").nodeCount(4));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']").nodeCount(1));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactionXref/url").string("http://www.ebi.ac.uk/intact/search/do/search?binary=EBI-696621,EBI-696657"));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactionXref/@database").string("IntAct"));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactionXref/@accession").string("EBI-696621,EBI-696657"));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactant/@uniqueName").string("NX_P51813"));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactant").nodeCount(2));
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactant/@uniqueName['NX_P51813']").exists());
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactant/@uniqueName['NX_P11309']").exists());
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/experiment-count").string("4"));
//Test case where there is a self interaction
}
@Test
public void shouldGetXMLForSelfInteraction() throws Exception {
ResultActions result = this.mockMvc.perform(get("/entry/NX_Q9NRR5/interaction.xml"));
String s = result.andReturn().getResponse().getContentAsString();
System.out.println(s);
//Verify the ac is correct
result.andExpect(xpath("interaction-list/interaction[@qualityQualifier='GOLD']/interactionXref/@accession['EBI-711226,EBI-711226']").exists());
//When it is a self interactant the link is a bit different
result.andExpect(xpath("interaction-list/interaction/interactionXref/url").string("http://www.ebi.ac.uk/intact/pages/interactions/interactions.xhtml?query=idA:Q9NRR5%20AND%20idB:Q9NRR5"));
//Theres should be only one interactant (self interactant)
result.andExpect(xpath("interaction-list/interaction/interactant").nodeCount(1));
}
}