### Question:
DomainCondition implements Comparable<DomainCondition>, PatchableComponent<DomainCondition> { public boolean hasType(DomainConditionType type) { return type == this.type; } DomainCondition(DomainConditionType conditionType);   DomainCondition(DomainCondition other); DateTime getLastProbeTime(); void setLastProbeTime(DateTime lastProbeTime); DomainCondition withLastProbeTime(DateTime lastProbeTime); DateTime getLastTransitionTime(); String getMessage(); DomainCondition withMessage(String message); String getReason(); DomainCondition withReason(String reason); String getStatus(); DomainCondition withStatus(String status); DomainConditionType getType(); boolean hasType(DomainConditionType type); @Override boolean isPatchableFrom(DomainCondition other); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object other); @Override int compareTo(DomainCondition o);  }### Answer:
@Test public void predicateDetectsType() { assertThat(new DomainCondition(Failed).hasType(Failed), is(true)); assertThat(new DomainCondition(Progressing).hasType(Available), is(false)); }