示例#1
0
  public WsdlMessageAssertion getAssertionByName(String name) {
    for (WsdlMessageAssertion assertion : assertions) {
      if (assertion.getName().equals(name)) return assertion;
    }

    return null;
  }
示例#2
0
  public List<WsdlMessageAssertion> getAssertionsOfType(
      Class<? extends WsdlMessageAssertion> class1) {
    List<WsdlMessageAssertion> result = new ArrayList<WsdlMessageAssertion>();

    for (WsdlMessageAssertion assertion : assertions) {
      if (assertion.getClass().equals(class1)) result.add(assertion);
    }

    return result;
  }
  public boolean canAddAssertion(WsdlMessageAssertion assertion, Assertable assertable) {
    if (assertion.isAllowMultiple()) {
      return true;
    }

    for (int c = 0; c < assertable.getAssertionCount(); c++) {
      if (assertion.getClass().equals(assertable.getAssertionAt(c).getClass())) {
        return false;
      }
    }

    return true;
  }
示例#4
0
  public void removeAssertion(WsdlMessageAssertion assertion) {
    int ix = assertions.indexOf(assertion);
    if (ix == -1) {
      throw new RuntimeException("assertion [" + assertion.getName() + "] not available ");
    }

    assertion.removePropertyChangeListener(this);
    assertions.remove(ix);
    fireAssertionRemoved(assertion);

    assertion.release();

    assertableConfig.removeAssertion(ix);
  }
示例#5
0
  public WsdlMessageAssertion addWsdlAssertion(TestAssertionConfig config) {
    try {
      WsdlMessageAssertion assertion =
          TestAssertionRegistry.getInstance().buildAssertion(config, assertable);
      if (assertion == null) {
        return null;
      } else {
        assertions.add(assertion);
        assertion.addPropertyChangeListener(this);

        return assertion;
      }
    } catch (Exception e) {
      SoapUI.logError(e);
      return null;
    }
  }
示例#6
0
  public WsdlMessageAssertion moveAssertion(int ix, int offset) {
    // int ix = assertions.indexOf( assertion );
    WsdlMessageAssertion assertion = getAssertionAt(ix);
    if (ix == -1) {
      throw new RuntimeException("assertion [" + assertion.getName() + "] not available ");
    }
    // if first selected can't move up and if last selected can't move down
    if ((ix == 0 && offset == -1) || (ix == assertions.size() - 1 && offset == 1)) {
      return assertion;
    }
    TestAssertionConfig conf = assertion.getConfig();
    XmlObject newXmlObject = conf.copy();

    TestAssertionConfig newConf = TestAssertionConfig.Factory.newInstance();
    newConf.set(newXmlObject);
    WsdlMessageAssertion newAssertion =
        TestAssertionRegistry.getInstance().buildAssertion(newConf, assertable);

    assertion.removePropertyChangeListener(this);
    assertions.remove(ix);

    assertion.release();

    assertableConfig.removeAssertion(ix);

    newAssertion.addPropertyChangeListener(this);
    assertions.add(ix + offset, newAssertion);

    assertableConfig.insertAssertion(newConf, ix + offset);
    fireAssertionMoved(newAssertion, ix, offset);
    return newAssertion;
  }
示例#7
0
  public WsdlMessageAssertion importAssertion(
      WsdlMessageAssertion source, boolean overwrite, boolean createCopy, String newName) {
    TestAssertionConfig conf = assertableConfig.addNewAssertion();
    conf.set(source.getConfig());
    conf.setName(newName);
    if (createCopy && conf.isSetId()) conf.unsetId();

    if (!source.isAllowMultiple()) {
      List<WsdlMessageAssertion> existing = getAssertionsOfType(source.getClass());
      if (!existing.isEmpty() && !overwrite) return null;

      while (!existing.isEmpty()) {
        removeAssertion(existing.remove(0));
      }
    }

    WsdlMessageAssertion result = addWsdlAssertion(conf);
    fireAssertionAdded(result);
    return result;
  }
示例#8
0
  public WsdlMessageAssertion addWsdlAssertion(String assertionLabel) {
    try {
      TestAssertionConfig assertionConfig = assertableConfig.addNewAssertion();
      assertionConfig.setType(
          TestAssertionRegistry.getInstance().getAssertionTypeForName(assertionLabel));

      String name = assertionLabel;
      while (getAssertionByName(name.trim()) != null) {
        name =
            UISupport.prompt(
                "Specify unique name of Assertion",
                "Rename Assertion",
                assertionLabel
                    + " "
                    + (getAssertionsOfType(
                            TestAssertionRegistry.getInstance()
                                .getAssertionClassType(assertionConfig))
                        .size()));
        if (name == null) {
          return null;
        }
      }
      WsdlMessageAssertion assertion = addWsdlAssertion(assertionConfig);
      if (assertion == null) return null;

      assertionConfig.setName(name);
      assertion.updateConfig(assertionConfig);

      if (assertion != null) {
        fireAssertionAdded(assertion);
      }

      return assertion;
    } catch (Exception e) {
      SoapUI.logError(e);
      return null;
    }
  }
  @Override
  public void release() {
    if (dialog != null) dialog.release();

    super.release();
  }
示例#10
0
 public void resolve(ResolveContext<?> context) {
   for (WsdlMessageAssertion assertion : assertions) {
     assertion.resolve(context);
   }
 }
示例#11
0
  public void release() {
    for (WsdlMessageAssertion assertion : assertions) assertion.release();

    assertionsListeners.clear();
  }