### Question:
CdsIsdaCreditCurveNode implements IsdaCreditCurveNode, ImmutableBean, Serializable { public static CdsIsdaCreditCurveNode.Builder builder() { return new CdsIsdaCreditCurveNode.Builder(); } private  CdsIsdaCreditCurveNode(
      CdsTemplate template,
      String label,
      ObservableId observableId,
      StandardId legalEntityId,
      CdsQuoteConvention quoteConvention,
      Double fixedRate); static CdsIsdaCreditCurveNode ofParSpread(
      CdsTemplate template,
      ObservableId observableId,
      StandardId legalEntityId); static CdsIsdaCreditCurveNode ofPointsUpfront(
      CdsTemplate template,
      ObservableId observableId,
      StandardId legalEntityId,
      Double fixedRate); static CdsIsdaCreditCurveNode ofQuotedSpread(
      CdsTemplate template,
      ObservableId observableId,
      StandardId legalEntityId,
      Double fixedRate); @Override LocalDate date(LocalDate tradeDate, ReferenceData refData); @Override DatedParameterMetadata metadata(LocalDate nodeDate); CdsCalibrationTrade trade(double quantity, MarketData marketData, ReferenceData refData); static CdsIsdaCreditCurveNode.Meta meta(); static CdsIsdaCreditCurveNode.Builder builder(); @Override CdsIsdaCreditCurveNode.Meta metaBean(); CdsTemplate getTemplate(); @Override String getLabel(); @Override ObservableId getObservableId(); StandardId getLegalEntityId(); CdsQuoteConvention getQuoteConvention(); OptionalDouble getFixedRate(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_build_fail_noRate() { assertThatIllegalArgumentException() .isThrownBy(() -> CdsIsdaCreditCurveNode.builder() .template(TEMPLATE) .observableId(QUOTE_ID) .legalEntityId(LEGAL_ENTITY) .quoteConvention(CdsQuoteConvention.QUOTED_SPREAD) .build()); }