protected void setUp() {
    testCase = new TestCase();
    testCase.setId(100);
    build = new Build();
    build.setId(100);
    testPlan = new TestPlan();
    testPlan.setId(100);

    testResult = new TestCaseWrapper(testCase);

    CustomField cf = new CustomField();
    cf.setName("nz");
    testResult.getCustomFields().add(cf);

    cf = new CustomField();
    cf.setName("au");
    testResult.getCustomFields().add(cf);
  }
  /* (non-Javadoc)
   * @see hudson.plugins.testlink.result.ResultSeeker#seekAndUpdate(hudson.plugins.testlink.result.TestCaseWrapper<?>[], hudson.model.AbstractBuild, hudson.Launcher, hudson.model.BuildListener, hudson.plugins.testlink.TestLinkSite, hudson.plugins.testlink.result.Report)
   */
  @Override
  public void seek(
      TestCaseWrapper[] automatedTestCases,
      AbstractBuild<?, ?> build,
      Launcher launcher,
      BuildListener listener,
      TestLinkSite testlink)
      throws ResultSeekerException {
    listener.getLogger().println(Messages.Results_JUnit_LookingForTestCases()); // i18n
    try {
      final JUnitParser parser = new JUnitParser(false);
      final TestResult testResult = parser.parse(this.includePattern, build, launcher, listener);

      for (SuiteResult suiteResult : testResult.getSuites()) {
        for (CaseResult caseResult : suiteResult.getCases()) {
          for (TestCaseWrapper automatedTestCase : automatedTestCases) {
            final String[] commaSeparatedValues =
                automatedTestCase.getKeyCustomFieldValues(this.keyCustomField);
            for (String value : commaSeparatedValues) {
              if (!caseResult.isSkipped() && caseResult.getName().equals(value)) {
                ExecutionStatus status = this.getExecutionStatus(caseResult);
                automatedTestCase.addCustomFieldAndStatus(value, status);

                if (this.isIncludeNotes()) {
                  final String notes = this.getJUnitNotes(caseResult, build.number);
                  automatedTestCase.appendNotes(notes);
                }
                super.handleResult(automatedTestCase, build, listener, testlink, suiteResult);
              }
            }
          }
        }
      }
    } catch (IOException e) {
      throw new ResultSeekerException(e);
    } catch (InterruptedException e) {
      throw new ResultSeekerException(e);
    }
  }
  public void testTestResultAttachments() {
    assertNotNull(testResult.getAttachments());

    assertEquals(testResult.getAttachments().size(), 0);

    Attachment attachment = new Attachment();
    testResult.getAttachments().add(attachment);

    assertEquals(testResult.getAttachments().size(), 1);

    attachment = new Attachment();
    testResult.addAttachment(attachment);

    assertEquals(testResult.getAttachments().size(), 2);
  }
  public void testTestResultCustomFieldAndStatus() {
    assertNotNull(testResult.getCustomFieldAndStatus());

    assertEquals(testResult.getCustomFieldAndStatus().size(), 0);
  }
 public void testTestResultTestCaseId() {
   assertTrue(testResult.getId() == 100);
 }