/*! ******************************************************************************
 *
 * Pentaho Data Integration
 *
 * Copyright (C) 2002-2016 by Pentaho : http://www.pentaho.com
 *
 *******************************************************************************
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 ******************************************************************************/

package org.pentaho.di.trans.steps.loadsave.validator;

import java.util.Date;
import java.util.Random;

public class DateLoadSaveValidator implements FieldLoadSaveValidator<Date> {

  @Override
  public Date getTestObject() {
    boolean future = new Random().nextBoolean();
    Long time = System.currentTimeMillis();
    if ( future ) {
      time += new Random().nextInt( time.intValue() ); // Up to 2*N years after 1970
    } else {
      time -= new Random().nextInt( time.intValue() ); // Back to January 1 1970
    }
    return new Date( time );
  }

  @Override
  public boolean validateTestObject( Date testObject, Object actual ) {
    if ( !( actual instanceof Date ) ) {
      return false;
    }
    return testObject.equals( actual );
  }

}

@@ -1134,217 +1134,89 @@
     
-boolean future = new Random().nextBoolean();%0A    Long time = System.currentTimeMillis();%0A    if ( future ) %7B%0A      time += new Random().nextInt( time.intValue() ); // Up to 2*N years after 1970%0A    %7D else %7B%0A  
+Long time = System.currentTimeMillis();%0A    // forward or back less than a month%0A
     
@@ -1220,17 +1220,17 @@
    time 
--
++
 = new Ra
@@ -1248,59 +1248,10 @@
 Int(
- time.intValue() ); // Back to January 1 1970%0A    %7D
+);
 %0A   

fix SlaveServer(Trans|Job)StatusTest.testSerialization (#2672)