@Test
public void testGetLaunchSpecifications()
{

    // Create objects required for testing.
    final EmrClusterDefinitionSpotSpecification emrClusterDefinitionSpotSpecification =
        new EmrClusterDefinitionSpotSpecification(TIMEOUT_DURATION_MINUTES, TIMEOUT_ACTION, BLOCK_DURATION_MINUTES, ALLOCATION_STRATEGY_1);
    final EmrClusterDefinitionOnDemandSpecification emrClusterDefinitionOnDemandSpecification =
        new EmrClusterDefinitionOnDemandSpecification(ALLOCATION_STRATEGY_2);
    final EmrClusterDefinitionLaunchSpecifications emrClusterDefinitionLaunchSpecifications =
        new EmrClusterDefinitionLaunchSpecifications(emrClusterDefinitionSpotSpecification, emrClusterDefinitionOnDemandSpecification);
    // Call the method under test.
    InstanceFleetProvisioningSpecifications result = emrDaoImpl.getLaunchSpecifications(emrClusterDefinitionLaunchSpecifications);
    // Verify the external calls.
    verifyNoMoreInteractionsHelper();
    // Validate the results.
    assertEquals(new InstanceFleetProvisioningSpecifications().withSpotSpecification(
        new SpotProvisioningSpecification().withAllocationStrategy(ALLOCATION_STRATEGY_1).withBlockDurationMinutes(BLOCK_DURATION_MINUTES)
            .withTimeoutAction(TIMEOUT_ACTION).withTimeoutDurationMinutes(TIMEOUT_DURATION_MINUTES))
        .withOnDemandSpecification(new OnDemandProvisioningSpecification().withAllocationStrategy(ALLOCATION_STRATEGY_2)), result);
}