public static void testAssessments(String myPath, String[] myDocs) { AuthoringHelperTest ah = new AuthoringHelperTest(); // String sep = "\\"; for (int i = 0; i < myDocs.length; i++) { String path = myPath + File.separator + myDocs[i]; log.info("Testing XML file:" + path); Document document = XmlUtil.readDocument(myPath + File.separator + myDocs[i]); log.info("Created doc."); AssessmentFacade a = ah.createImportedAssessment(document); log.info("Created assessment title: " + a.getTitle()); log.info("Created assessment comments: " + a.getComments()); log.info("Created assessment desc: " + a.getDescription()); log.info("Created assessment mod: " + a.getLastModifiedBy()); log.info("Created assessment date: " + a.getLastModifiedDate()); } }
/** * copy of method in AuthoringHelper with persistence turned off. Import an XML document in QTI * format, extract and persist the data. * * @param document the document * @return a persisted assessment */ public AssessmentFacade createImportedAssessment(Document document) { // if(log.isDebugEnabled()) // { log.info( // log.debug( document == null ? "DOCUMENT IS NULL IN createPublishedAssessment( Document)" : "createPublishedAssessment(Document)"); // } // AssessmentFacade assessment = null; AssessmentFacade assessment = new AssessmentFacade(); try { // create the assessment, later we'll add tests of 2.0 ExtractionHelper exHelper = new ExtractionHelper(QTIVersion.VERSION_1_2); exHelper.setOverridePath(xslPath); // we need to know who we are String me = "admin"; // AgentFacade.getAgentString(); // AssessmentService assessmentService = new AssessmentService(); // ItemService itemService = new ItemService(); Assessment assessmentXml = new Assessment(document); Map assessmentMap = exHelper.mapAssessment(assessmentXml); assessment = new AssessmentFacade(); // exHelper.createAssessment(assessmentMap); // update the remaining assessment properties exHelper.updateAssessment(assessment, assessmentMap); // make sure required fields are set assessment.setCreatedBy(me); assessment.setCreatedDate(assessment.getCreatedDate()); assessment.setLastModifiedBy(me); assessment.setLastModifiedDate(assessment.getCreatedDate()); assessment.setTypeId(TypeIfc.QUIZ); assessment.setStatus(new Integer(1)); // process each section and each item within each section List sectionList = exHelper.getSectionXmlList(assessmentXml); // log.debug("found: " + sectionList.size() + "sections"); log.debug("sections=" + sectionList.size()); for (int sec = 0; sec < sectionList.size(); sec++) // for each section... { Section sectionXml = (Section) sectionList.get(sec); Map sectionMap = exHelper.mapSection(sectionXml); log.debug("SECTION MAP=" + sectionMap); // create the assessment section SectionFacade section = new SectionFacade(); // assessmentService.addSection("" + assessment.getAssessmentId()); exHelper.updateSection(section, sectionMap); // make sure we are the creator log.debug("section " + section.getTitle() + "created by '" + me + "'."); section.setCreatedBy(me); section.setCreatedDate(assessment.getCreatedDate()); section.setLastModifiedBy(me); section.setLastModifiedDate(assessment.getCreatedDate()); section.setTypeId(TypeIfc.DEFAULT_SECTION); section.setStatus(new Integer(1)); // set the sequence section.setSequence(new Integer(sec + 1)); // // add the section to the assessment // section.setAssessmentId(assessment.getAssessmentId());//many to one // section.setAssessment(assessment); // assessment.getSectionArray().add(section);// one to many List itemList = exHelper.getItemXmlList(sectionXml); for (int itm = 0; itm < itemList.size(); itm++) // for each item { log.debug("items=" + itemList.size()); Item itemXml = (Item) itemList.get(itm); Map itemMap = exHelper.mapItem(itemXml); log.debug("ITEM MAP=" + itemMap); ItemFacade item = new ItemFacade(); exHelper.updateItem(item, itemMap); // make sure required fields are set item.setCreatedBy(me); item.setCreatedDate(assessment.getCreatedDate()); item.setLastModifiedBy(me); item.setLastModifiedDate(assessment.getCreatedDate()); log.debug("ITEM TYPE IS: " + item.getTypeId()); item.setStatus(ItemDataIfc.ACTIVE_STATUS); // assign the next sequence number item.setSequence(new Integer(itm + 1)); // add item to section item.setSection(section); // one to many section.addItem(item); // many to one // itemService.saveItem(item); // debugging // Set metaSet = item.getItemMetaDataSet(); // Iterator iter = metaSet.iterator(); // if (log.isDebugEnabled()) // { // while (iter.hasNext()) // { // ItemMetaData meta = (ItemMetaData) iter.next(); // log.debug("ITEM DEBUG meta " + meta.getLabel() + // "=" + meta.getEntry()); // } // } log.debug("ITEM: ans key" + item.getAnswerKey()); log.debug("ITEM: correct feed" + item.getCorrectItemFeedback()); log.debug("ITEM: incorrect feed " + item.getInCorrectItemFeedback()); log.debug("ITEM: by " + item.getCreatedBy()); log.debug("ITEM: date" + item.getCreatedDate()); log.debug("ITEM: desc " + item.getDescription()); log.debug("ITEM: duration" + item.getDuration()); log.debug("ITEM: general feed " + item.getGeneralItemFeedback()); log.debug("ITEM: incorrect " + item.getInCorrectItemFeedback()); log.debug("ITEM: is true " + item.getIsTrue()); log.debug("ITEM DEBUG item text" + item.getText()); log.debug("ITEM: item text" + item.getText()); } // ... end for each item } // ... end for each section log.debug("assessment created by '" + assessment.getCreatedBy() + "'."); // assessmentService.update(assessment); // debugging log.debug("ASSESSMENT: meta " + assessment.getAssessmentMetaDataMap()); log.debug("ASSESSMENT: feed " + assessment.getAssessmentFeedback()); log.debug("ASSESSMENT: comments " + assessment.getComments()); log.debug("ASSESSMENT: by " + assessment.getCreatedBy()); log.debug("ASSESSMENT: by date " + assessment.getCreatedDate()); log.debug("ASSESSMENT: desc" + assessment.getDescription()); log.debug("ASSESSMENT: disp " + assessment.getDisplayName()); log.debug("ASSESSMENT: last by " + assessment.getLastModifiedBy()); log.debug("ASSESSMENT: last date" + assessment.getLastModifiedDate()); log.debug("ASSESSMENT: mult " + assessment.getMultipartAllowed()); log.debug("ASSESSMENT: title " + assessment.getTitle()); log.debug("ASSESSMENT DEBUG title " + assessment.getTitle()); // assessmentService.saveAssessment(assessment); } catch (RuntimeException e) { log.error(e.getMessage(), e); throw new RuntimeException(e); } return assessment; }