### Question:
SimpleServiceLevelAssessor implements ServiceLevelAssessor { @Override public ServiceLevelAssessment assess(ServiceLevelAgreement sla) { Log.info("Assessing SLA: {}", sla.getName()); AssessmentResult combinedResult = AssessmentResult.FAILURE; try { SimpleServiceLevelAssessment slaAssessment = new SimpleServiceLevelAssessment(sla); List<ObligationGroup> groups = sla.getObligationGroups(); for (ObligationGroup group : groups) { ObligationGroup.Condition condition = group.getCondition(); AssessmentResult groupResult = AssessmentResult.SUCCESS; for (Obligation ob : group.getObligations()) { ObligationAssessment obAssessment = assess(ob); slaAssessment.add(obAssessment); groupResult = groupResult.max(obAssessment.getResult()); } switch (condition) { case REQUIRED: if (groupResult == AssessmentResult.FAILURE) { return completeAssessment(slaAssessment, groupResult); } break; case SUFFICIENT: if (groupResult != AssessmentResult.FAILURE) { return completeAssessment(slaAssessment, groupResult); } break; default: } combinedResult = combinedResult.min(groupResult); } return completeAssessment(slaAssessment, combinedResult); } finally { Log.debug("Completed assessment of SLA {}: {}", sla.getName(), combinedResult); } } SimpleServiceLevelAssessor(); @Override ServiceLevelAssessment assess(ServiceLevelAgreement sla); @Override ObligationAssessor<? extends Obligation> registerObligationAssessor(ObligationAssessor<? extends Obligation> assessor); @Override MetricAssessor<? extends Metric, ? extends Serializable> registerMetricAssessor(MetricAssessor<? extends Metric, ? extends Serializable> assessor); @Override ServiceLevelAssessment findLatestAssessment(ServiceLevelAgreement sla);  }### Answer:
@Test(expected=AssessorNotFoundException.class) public void testAssessNoMetricAssessor() { ServiceLevelAgreement sla = this.provider.builder() .name("test") .obligationBuilder() .description("test") .metric(new TestMetric(1, "1")) .build() .build(); this.assessor.assess(sla); }