@Test
  public void testShouldValidationFailWhenHostGroupConfigurationProvidedAndRequiredConfigTypesAreMissingFromBothHostgroups() throws Exception {
    // GIVEN
    // configuration come in the host groups, there are missing config types in both hostgroups
    missingProps.put("master", Sets.newTreeSet(Lists.newArrayList("kdc_type", "domains", "realm")));
    missingProps.put("slave", Sets.newTreeSet(Lists.newArrayList("kdc_type", "domains", "realm")));

    replayAll();

    // WHEN
    String expectedMsg = String.format("Missing required properties.  Specify a value for these properties in the blueprint or cluster creation template configuration. %s", missingProps);
    String actualMsg = "";
    try {
      testSubject.validate(clusterTopologyMock);
    } catch (InvalidTopologyException e) {
      actualMsg = e.getMessage();
    }

    // THEN
    // Exception is thrown, as the krb5-conf typee is not provided
    Assert.assertEquals("The exception message should be the expected one", expectedMsg, actualMsg);
  }
Assembles the basic default fixture of the test:
The blueprint has 2 hostgroups, both of them contains the KERBEROS service (or KERBEROS_CLIENT)
The changing items are the configurations, that my come from the topology (bp + cct) or the hostg roups
ambari-server/src/test/java/org/apache/ambari/server/topology/validators/RequiredConfigPropertiesValidatorTest.java