@Test
  public void testShouldValidationFailWhenNoHostGroupConfigurationProvidedAndRequiredPropertiesAreMissing() throws Exception {
    // GIVEN

    // configuration from the blueprint / cluster creation template
    topologyConfigurationMap.put("kerberos-env", new HashMap<>());
    topologyConfigurationMap.get("kerberos-env").put("realm", "etwas");

    // note, that tehe kdc_type is mssing from the operational config

    topologyConfigurationMap.put("krb5-conf", new HashMap<>());
    topologyConfigurationMap.get("krb5-conf").put("domains", "smthg");

    missingProps.put("master", Collections.singletonList("kdc_type"));
    missingProps.put("slave", Collections.singletonList("kdc_type"));

    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 provideds
    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