@Test
public void testChildCustomCommandScriptInheritance() throws Exception {

  // Test custom command script determination in parent
  ComponentInfo component = metaInfo.getComponent(STACK_NAME_HDP, "2.0.7",
          "HDFS", "NAMENODE");
  CustomCommandDefinition ccd = findCustomCommand("DECOMMISSION", component);
  Assert.assertEquals("scripts/namenode_dec.py",
          ccd.getCommandScript().getScript());
  ccd = findCustomCommand("YET_ANOTHER_PARENT_COMMAND", component);
  Assert.assertEquals("scripts/yet_another_parent_command.py",
          ccd.getCommandScript().getScript());
  ccd = findCustomCommand("REBALANCEHDFS", component);
  Assert.assertEquals("scripts/namenode.py",
      ccd.getCommandScript().getScript());
  Assert.assertTrue(ccd.isBackground());
  Assert.assertEquals(3, component.getCustomCommands().size());
  // Test custom command script inheritance
  component = metaInfo.getComponent(STACK_NAME_HDP, "2.0.8",
          "HDFS", "NAMENODE");
  Assert.assertEquals(4, component.getCustomCommands().size());
  ccd = findCustomCommand("YET_ANOTHER_PARENT_COMMAND", component);
  Assert.assertEquals("scripts/yet_another_parent_command.py",
          ccd.getCommandScript().getScript());
  // Test custom command script override
  ccd = findCustomCommand("DECOMMISSION", component);
  Assert.assertEquals("scripts/namenode_dec_overr.py",
          ccd.getCommandScript().getScript());
  ccd = findCustomCommand("YET_ANOTHER_CHILD_COMMAND", component);
  Assert.assertEquals("scripts/yet_another_child_command.py",
          ccd.getCommandScript().getScript());
}