private XmlHandler getUnitTest2008Handler()

in agent/src/jetbrains/buildServer/xmlReportPlugin/parsers/mstest/TestNamesTableParser.java [84:127]


  private XmlHandler getUnitTest2008Handler() {
    return elementsPath(
      new Handler() {
        public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
          final String id = reader.getAttribute("id");
          if (id == null) return reader.noDeep();

          final String[] nameParts = new String[3]; // classname, name, Description

          return reader.visitChildren(
            elementsPath(new Handler() {
              public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
                //<TestMethod codeBase="..test/tests.lib9.dll"
                //            adapterTypeName="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapter, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter"
                //            className="Test4.DerivedClass, tests.lib9, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
                //            name="testMethod" />
                nameParts[0] = reader.getAttribute("className");
                nameParts[1] = reader.getAttribute("name");
                return reader.noDeep();
              }
            }, "TestMethod"),
            elementsPath(new Handler() {
              public XmlReturn processElement(@NotNull final XmlElementInfo reader) {
                // <Description>warn on high std dev</Description>
                return reader.visitText(new TextHandler() {
                  public void setText(@NotNull final String text) {
                    nameParts[2] = text;
                  }
                });
              }
            }, "Description")).than(
            new XmlAction() {
              public void apply() {
                final String testName = getTestName(nameParts);

                if (testName != null) {
                  myParserCallback.testMethodFound(id, testName);
                }
              }
            });
        }
      }, "UnitTest"
    );
  }