package test.eurocarbdb.action.core; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.eurocarbdb.action.core.Autocompleter; import org.eurocarbdb.action.core.Autocompleter.AutocompleteResult; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import test.eurocarbdb.action.BaseActionTestSuite; import com.opensymphony.xwork.ActionProxy; @Test( groups = { "ecdb.action.core.CreateReferences" } ) public class TestAutoCompletor extends BaseActionTestSuite { /** Logging handle. */ static final Logger log = Logger.getLogger( TestAutoCompletor.class ); @BeforeSuite public void initialise() throws Exception { actionFactory.createActionProxy("", "user_autocompleter", null); log.setLevel(Level.OFF); } public void testHomoSapQueryString() throws Exception { HashMap<String,String> queryToResult=new HashMap<String,String>(); queryToResult.put("Homo", "Homo sapiens"); queryToResult.put("9606", "Homo sapiens"); queryToResult.put("Mus", "Mus musculus"); queryToResult.put("10090","Mus musculus"); for(String query:queryToResult.keySet()){ Map<String,Object> params = new HashMap<String,Object>(); params.put("queryString", query); params.put("queryType", "taxonomy_name"); ActionProxy action = getAction("user_autocompleter",params); String result = action.execute(); Autocompleter autoObj=(Autocompleter) action.getAction(); Set<AutocompleteResult> resultSet=autoObj.getResults(); Iterator<AutocompleteResult> resultSetIterator=resultSet.iterator(); String topResult=resultSetIterator.next().description; log.debug("Top result: "+topResult); assert (topResult.equals(queryToResult.get(query))) : "Expecting top result of "+queryToResult.get(query)+" but got: "+topResult+" instead. For query: "+query; } } public void testDiseaseQueryString() throws Exception { HashMap<String,String> queryToResult=new HashMap<String,String>(); queryToResult.put("Canc", "Cancer"); for(String query:queryToResult.keySet()){ Map<String,Object> params = new HashMap<String,Object>(); params.put("queryString", query); params.put("queryType", "disease_name"); ActionProxy action = getAction("user_autocompleter",params); String result = action.execute(); Autocompleter autoObj=(Autocompleter) action.getAction(); Set<AutocompleteResult> resultSet=autoObj.getResults(); Iterator<AutocompleteResult> resultSetIterator=resultSet.iterator(); String topResult=resultSetIterator.next().description; log.debug("Top result: "+topResult); assert (topResult.equals(queryToResult.get(query))) : "Expecting top result of "+queryToResult.get(query)+" but got: "+topResult+" instead. For query: "+query; } } }