public InterfaceReasoner setUpOntology( ScenarioTest st, String ont, String ns, InterfaceReasoner jena) throws InvalidOntologyException { ListIterator liClass; ListIterator liProperties; String[] ciClas, ciInd, piClas, piInd; String patron1 = "[\\(|,|\n| ]"; String patron2 = "[\n| |\\)]"; Instancias instancias = st.getInstancias(); List<ClassInstances> classInstances = instancias.getClassInstances(); List<PropertyInstances> propertyInstances = instancias.getPropertyInstances(); liClass = classInstances.listIterator(); liProperties = propertyInstances.listIterator(); while (liClass.hasNext()) { ClassInstances cla = (ClassInstances) liClass.next(); String ci = cla.getClassInstance(); ciClas = ci.split(patron1); ciInd = ciClas[1].split(patron2); jena.addInstanceClass(ns, ciClas[0], ciInd[0]); } while (liProperties.hasNext()) { PropertyInstances p = (PropertyInstances) liProperties.next(); String pi = p.getPropertyInstance(); piClas = pi.split(patron1); piInd = piClas[1].split(patron2); jena.addInstanceProperty(ns, piClas[0], piInd[0]); } return jena; }
@Override public void run( OntologyTestResult testresult, String ont, String ns, ScenarioTest scenario, InterfaceReasoner jena) throws InvalidOntologyException { List<SparqlQueryOntology> sparqlTest = scenario.getSparqlQuerys(); listaResultObtenida = new ArrayList<ExecQuerySparql>(); liSparql = sparqlTest.listIterator(); while (liSparql.hasNext()) { listaResultEsperada = new ArrayList<ExecQuerySparql>(); sparqlquery = (SparqlQueryOntology) liSparql.next(); String sparqlQuery = sparqlquery.getQuery().trim(); resQueryExpected = sparqlquery.getResultexpected().trim(); res = resQueryExpected.split(patron5); for (int k = 0; k < res.length; k++) { if (!res[k].equals("")) { ExecQuerySparql execQuery = new ExecQuerySparql(); String[] select = res[k].trim().split(patron7); execQuery.setNombreSelect(select[0]); String[] subRes = select[1].trim().split(patron6); for (int m = 0; m < subRes.length; m++) { execQuery.getDatos().add(subRes[m].trim()); } listaResultEsperada.add(execQuery); } } listaResultObtenida = jena.testSPARQL(sparqlQuery); if (listaResultObtenida != null) { if (listaResultObtenida.size() > 0) { esperado = new ArrayList<String>(); obtenido = new ArrayList<String>(); String contenidoObtenido = "", contenidoEsperado = ""; fallo = 0; int tam = listaResultObtenida.get(0).getDatos().size(); int tamBis = listaResultEsperada.get(0).getDatos().size(); if ((listaResultEsperada.size() == listaResultObtenida.size()) && (tam == tamBis)) { for (int n = 0; n < tam; n++) { for (int t = 0; t < listaResultObtenida.size(); t++) { contenidoObtenido = contenidoObtenido + listaResultObtenida.get(t).getDatos().get(n); contenidoEsperado = contenidoEsperado + listaResultEsperada.get(t).getDatos().get(n); } esperado.add(contenidoEsperado); obtenido.add(contenidoObtenido); contenidoObtenido = ""; contenidoEsperado = ""; } } else { fallo = 1; } } else if (listaResultObtenida.size() == 0) { if ((listaResultEsperada.size() != listaResultObtenida.size())) { fallo = 1; } } } if (utils.contieneTodosIguales(esperado, obtenido) == false || fallo == 1) { if (listaResultObtenida != null) { testresult.addOntologyFailureSparql( scenario.getNombre(), sparqlquery, listaResultEsperada, listaResultObtenida, scenario.getTipoTest()); } } else { testresult.addOntologyPassedSparql( scenario.getNombre(), sparqlquery, listaResultEsperada, listaResultObtenida, scenario.getTipoTest()); } } }