private XmlHandler testHandler()

in agent/src/jetbrains/buildServer/xmlReportPlugin/parsers/nUnit/NUnitXmlReportParser.java [237:278]


    private XmlHandler testHandler() {
      return elementsPath(new Handler() {
        public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
          final TestData testData = new TestData();

          testData.setName(reader.getAttribute("name"));
          testData.setIgnored(ignored(reader));
          testData.setSuccess(success(reader));
          testData.setDuration(myDurationParser.parseTestDuration(reader.getAttribute("duration")));

          return reader.visitChildren(
            elementsPath(new TextHandler() {
              @Override
              public void setText(@NotNull final String text) {
                testData.setOutput(text.trim());
              }
            }, "output"),
            elementsPatternPath(new Handler() {
              public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
                if ("failure".equals(reader.getLocalName())) testData.setSuccess(false);
                return reader.visitChildren(
                  elementsPath(new TextHandler() {
                    public void setText(@NotNull final String text) {
                      testData.setMessage(text.trim());
                    }
                  }, "message"),
                  elementsPath(new TextHandler() {
                    public void setText(@NotNull final String text) {
                      testData.setFailureStackTrace(text.trim());
                    }
                  }, "stack-trace")
                );
              }
            }, "failure|reason")
          ).than(new XmlAction() {
            public void apply() {
              myCallback.testFound(testData);
            }
          });
        }
      }, "test-case");
    }