package org.embulk.config; import org.junit.Rule; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertFalse; import com.google.inject.Inject; import org.embulk.spi.Exec; import org.embulk.EmbulkTestRuntime; public class TestTaskSource { private static interface TypeFields extends Task { public boolean getBoolean(); public void setBoolean(boolean v); public double getDouble(); public void setDouble(double v); public int getInt(); public void setInt(int v); public long getLong(); public void setLong(long v); public String getString(); public void setString(String v); } @Rule public EmbulkTestRuntime runtime = new EmbulkTestRuntime(); private TaskSource taskSource; @Before public void setup() throws Exception { taskSource = Exec.newTaskSource(); taskSource.set("Boolean", false); taskSource.set("Double", 0.5); taskSource.set("Int", 0); taskSource.set("Long", 0); taskSource.set("String", ""); } @Test public void testEqualsOfLoadedTasks() { TypeFields task = taskSource.loadTask(TypeFields.class); task.setBoolean(true); task.setDouble(0.2); task.setInt(3); task.setLong(Long.MAX_VALUE); task.setString("sf"); TaskSource taskSource2 = task.dump(); TypeFields task2 = taskSource2.loadTask(TypeFields.class); assertTrue(task.equals(task2)); assertTrue(task.hashCode() == task2.hashCode()); task.setBoolean(false); assertFalse(task.equals(task2)); assertFalse(task.hashCode() == task2.hashCode()); } }