@Test
public void testValidateAttributeOptionComboWithValidData()
    throws WebMessageException
{

    // Initially
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, null );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, null, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodFeb, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodMar, dataSetA, dataElementA );
    // Given
    categoryOptionA.setStartDate( jan15 );
    // Then
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, null );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, null, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodFeb, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodMar, dataSetA, dataElementA );
    // And given
    categoryOptionA.setEndDate( jan15 );
    // Then
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, dataSetA, null );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodJan, null, dataElementA );
    // And given
    dataSetA.setOpenPeriodsAfterCoEndDate( 1 );
    // Then
    dataValidator.validateAttributeOptionCombo( optionComboA, periodFeb, dataSetA, dataElementA );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodFeb, dataSetA, null );
    dataValidator.validateAttributeOptionCombo( optionComboA, periodFeb, null, dataElementA );
}