public boolean testCase1()

in java/src/org/apache/qetest/trax/Minitest.java [182:326]


    public boolean testCase1()
    {
        reporter.testCaseInit("Basic systemId transforms and params plus API coverage");

        TransformerFactory factory = null;
        Templates templates = null;
        Transformer transformer = null;
        try
        {
            factory = TransformerFactory.newInstance();
            templates = factory.newTemplates(new StreamSource(QetestUtils.filenameToURL(testFileInfo.inputName)));
            reporter.check((templates != null), true, "factory.newTemplates(StreamSource) is non-null");
        }
        catch (Throwable t)
        {
            reporter.logThrowable(reporter.ERRORMSG, t, 
                                  "Problem creating Templates; cannot continue testcase");
            reporter.checkErr("Problem creating Templates; cannot continue testcase");
            return true;
        }
        try
        {
            // Validate a systemId transform
            reporter.logTraceMsg("Basic stream transform(1)(" + QetestUtils.filenameToURL(testFileInfo.xmlName) + ", "
                                 + QetestUtils.filenameToURL(testFileInfo.inputName)  + ", "
                                 + outNames.nextName());
            transformer = templates.newTransformer();
            FileOutputStream fos = new FileOutputStream(outNames.currentName());
            transformer.transform(new StreamSource(QetestUtils.filenameToURL(testFileInfo.xmlName)), 
                                  new StreamResult(fos));
            fos.close();
            int fileCheckStatus = fileChecker.check(reporter, 
                              new File(outNames.currentName()), 
                              new File(testFileInfo.goldName), 
                              "Basic stream transform(1) into: " + outNames.currentName());
            if (fileCheckStatus != reporter.PASS_RESULT)
            {
                reporter.logWarningMsg("Basic stream transform(1) into: " + outNames.currentName()
                                       + fileChecker.getExtendedInfo());
            }

            // Validate transformer reuse
            reporter.logTraceMsg("Basic stream transform(2)(" + QetestUtils.filenameToURL(testFileInfo.xmlName) + ", "
                                 + QetestUtils.filenameToURL(testFileInfo.inputName)  + ", "
                                 + outNames.nextName());
            fos = new FileOutputStream(outNames.currentName());
            transformer.transform(new StreamSource(QetestUtils.filenameToURL(testFileInfo.xmlName)), 
                                  new StreamResult(fos));
            fos.close();
            fileCheckStatus = fileChecker.check(reporter, 
                              new File(outNames.currentName()), 
                              new File(testFileInfo.goldName), 
                              "Basic stream transform(2) into: " + outNames.currentName());
            if (fileCheckStatus != reporter.PASS_RESULT)
            {
                reporter.logWarningMsg("Basic stream transform(2) into: " + outNames.currentName()
                                       + fileChecker.getExtendedInfo());
            }
        } 
        catch (Throwable t)
        {
            reporter.checkFail("Problem with simple stream transform");
            reporter.logThrowable(reporter.ERRORMSG, t, "Problem with simple stream transform");
        }

        try
        {
            // Validate selected API's - primarily Parameters
            Templates paramTemplates = factory.newTemplates(new StreamSource(QetestUtils.filenameToURL(paramFileInfo.inputName)));
            Transformer paramTransformer = paramTemplates.newTransformer();
            String paramStr = "paramVal";
            paramTransformer.setParameter(PARAM1S, paramStr);
            reporter.logTraceMsg("Just set " + PARAM1S + " to " + paramStr);
            Object tmp = paramTransformer.getParameter(PARAM1S);    // SPR SCUU4QWTVZ - returns an XObject - fixed
            if (tmp == null)
            {
                reporter.checkFail(PARAM1S + " is still set to null!");
            }
            else
            {   // Validate SPR SCUU4QWTVZ - should return the same type you set
                if (tmp instanceof String)
                {
                    reporter.checkObject(tmp, paramStr, PARAM1S + " is now set to ?" + tmp + "?");
                }
                else
                {
                    reporter.checkFail(PARAM1S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
                }
            }

            // Verify simple re-set/get of a single parameter - new Integer
            Integer paramInteger = new Integer(1234);
            paramTransformer.setParameter(PARAM1S, paramInteger);   // SPR SCUU4R3JGY - can't re-set
            reporter.logTraceMsg("Just reset " + PARAM1S + " to new Integer(99)");
            tmp = null;
            tmp = paramTransformer.getParameter(PARAM1S);
            if (tmp == null)
            {
                reporter.checkFail(PARAM1S + " is still set to null!");
            }
            else
            {   // Validate SPR SCUU4QWTVZ - should return the same type you set
                if (tmp instanceof Integer)
                {
                    reporter.checkObject(tmp, paramInteger, PARAM1S + " is now set to ?" + tmp + "?");
                }
                else
                {
                    reporter.checkFail(PARAM1S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
                }
            }
            // Validate a transform with two params set
            paramTransformer.setParameter(PARAM1N, "new-param1n-value");
            reporter.logTraceMsg("Just reset " + PARAM1N + " to new-param1n-value");

            reporter.logTraceMsg("Stream-param transform(" + QetestUtils.filenameToURL(paramFileInfo.xmlName) + ", "
                                 + QetestUtils.filenameToURL(paramFileInfo.inputName)  + ", "
                                 + outNames.nextName());
            FileOutputStream fos = new FileOutputStream(outNames.currentName());
            paramTransformer.transform(new StreamSource(QetestUtils.filenameToURL(paramFileInfo.xmlName)), 
                                  new StreamResult(fos));
            fos.close();
            int fileCheckStatus = fileChecker.check(reporter, 
                              new File(outNames.currentName()), 
                              new File(paramFileInfo.goldName), 
                              "Stream transform with params into: " + outNames.currentName());
            if (fileCheckStatus != reporter.PASS_RESULT)
            {
                reporter.logWarningMsg("Stream transform with params into: " + outNames.currentName()
                                       + fileChecker.getExtendedInfo());
            }
            // Validate params are still set after transform
            tmp = paramTransformer.getParameter(PARAM1S);
            reporter.checkObject(tmp, paramInteger, PARAM1S + " is now set to ?" + tmp + "?");
            tmp = paramTransformer.getParameter(PARAM1N);
            reporter.checkObject(tmp, "new-param1n-value", PARAM1N + " is now set to ?" + tmp + "?");
        } 
        catch (Throwable t)
        {
            reporter.checkFail("Problem with parameters");
            reporter.logThrowable(reporter.ERRORMSG, t, "Problem with parameters");
        }
        reporter.testCaseClose();
        return true;
    }