private XmlHandler getUnknown2008Result()

in agent/src/jetbrains/buildServer/xmlReportPlugin/parsers/mstest/TestResultsTableParser.java [222:280]


  private XmlHandler getUnknown2008Result(final String pattern) {
    return elementsPatternPath(new Handler() {
      public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
        final TestResult result = new TestResult(TestResult.VS_Version.VS_9);

        result.setTestId(reader.getAttribute("testId"));
        result.setOutcome(reader.getAttribute("outcome"));
        result.setDuration(reader.getAttribute("duration"));
        result.setDataRowInfo(reader.getAttribute("dataRowInfo"));
        result.setStartTime(reader.getAttribute("startTime"));
        result.setEndTime(reader.getAttribute("endTime"));

        return reader.visitChildren(
          elementsPath(new Handler() {
            public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
              result.setHasInnerResults(true);
              return reader.visitChildren(getUnknown2008RecursiveResult(pattern));
            }
          }, "InnerResults"),
          elementsPath(new Handler() {
            public XmlReturn processElement(@NotNull XmlElementInfo reader) {
              return reader.visitChildren(
                elementsPath(new TextHandler() {
                  public void setText(@NotNull final String text) {
                    result.setStdOutput(text);
                  }
                }, "StdOut"),
                elementsPath(new TextHandler() {
                  public void setText(@NotNull final String text) {
                    result.setStdError(text);
                  }
                }, "StdErr"),
                elementsPath(new Handler() {
                  public XmlReturn processElement(@NotNull XmlElementInfo reader) {
                    return reader.visitChildren(
                      elementsPath(new TextHandler() {
                        public void setText(@NotNull final String text) {
                          result.setError(text);
                        }
                      }, "Message"),
                      elementsPath(new TextHandler() {
                        public void setText(@NotNull final String text) {
                          result.setStacktrace(text);
                        }
                      }, "StackTrace")
                    );
                  }
                }, "ErrorInfo"));
            }
          }, "Output")).than(new XmlAction() {
          public void apply() {
            if (!result.hasInnerResults()) {
              processTest(result);
            }
          }
        });
      }
    }, pattern);
  }