@Test
public void testGetInstanceFleets()
{

    // Create objects required for testing.
    final String name = STRING_VALUE;
    final String instanceFleetType = STRING_VALUE_2;
    final Integer targetOnDemandCapacity = INTEGER_VALUE;
    final Integer targetSpotCapacity = INTEGER_VALUE_2;
    final List<EmrClusterDefinitionInstanceTypeConfig> emrClusterDefinitionInstanceTypeConfigs = null;
    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);
    final EmrClusterDefinitionInstanceFleet emrClusterDefinitionInstanceFleet =
        new EmrClusterDefinitionInstanceFleet(name, instanceFleetType, targetOnDemandCapacity, targetSpotCapacity, emrClusterDefinitionInstanceTypeConfigs,
            emrClusterDefinitionLaunchSpecifications);
    // Call the method under test.
    List<InstanceFleetConfig> result = emrDaoImpl.getInstanceFleets(Lists.newArrayList(emrClusterDefinitionInstanceFleet));
    // Verify the external calls.
    verifyNoMoreInteractionsHelper();
    // Validate the results.
    final List<InstanceTypeConfig> expectedInstanceTypeConfigs = null;
    assertEquals(Lists.newArrayList(
        new InstanceFleetConfig().withName(name).withInstanceFleetType(instanceFleetType).withTargetOnDemandCapacity(targetOnDemandCapacity)
            .withTargetSpotCapacity(targetSpotCapacity).withInstanceTypeConfigs(expectedInstanceTypeConfigs).withLaunchSpecifications(
            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);
}