Add JSON serialization tests for processes

This commit is contained in:
Antonin Delpeuch 2018-08-21 16:08:05 +01:00
parent debe9bde37
commit 580fd92c10
4 changed files with 148 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package com.google.refine.tests.process;
import static org.mockito.Mockito.mock;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.refine.ProjectManager;
import com.google.refine.history.Change;
import com.google.refine.history.HistoryEntry;
import com.google.refine.history.HistoryProcess;
import com.google.refine.model.AbstractOperation;
import com.google.refine.model.Project;
import com.google.refine.model.metadata.ProjectMetadata;
import com.google.refine.tests.RefineTest;
import com.google.refine.tests.util.TestUtils;
public class HistoryProcessTests extends RefineTest {
private Project project;
private ProjectMetadata projectMetadata;
@BeforeMethod
public void setUp() {
project = new Project();
projectMetadata = mock(ProjectMetadata.class);
ProjectManager.singleton.registerProject(project, projectMetadata);
AbstractOperation op = mock(AbstractOperation.class);
Change ch = mock(Change.class);
HistoryEntry entry = new HistoryEntry(1234L, project, "first operation", op, ch);
project.history.addEntry(entry);
entry = new HistoryEntry(5678L, project, "second operation", op, ch);
project.history.addEntry(entry);
}
@Test
public void serializeHistoryProcess() {
HistoryProcess process = new HistoryProcess(project, 1234L);
TestUtils.isSerializedTo(process, "{"
+ "\"description\":\"Undo/redo until after first operation\","
+ "\"immediate\":true,"
+ "\"status\":\"pending\"}");
}
}

View File

@ -0,0 +1,33 @@
package com.google.refine.tests.process;
import org.testng.annotations.Test;
import com.google.refine.process.LongRunningProcess;
import com.google.refine.tests.util.TestUtils;
public class LongRunningProcessTests {
public static class LongRunningProcessStub extends LongRunningProcess {
protected LongRunningProcessStub(String description) {
super(description);
}
@Override
protected Runnable getRunnable() {
return null;
}
}
@Test
public void serializeLongRunningProcess() {
LongRunningProcess process = new LongRunningProcessStub("some description");
int hashCode = process.hashCode();
TestUtils.isSerializedTo(process, "{"
+ "\"id\":"+hashCode+","
+ "\"description\":\"some description\","
+ "\"immediate\":false,"
+ "\"status\":\"pending\","
+ "\"progress\":0}");
}
}

View File

@ -0,0 +1,31 @@
package com.google.refine.tests.process;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.refine.process.LongRunningProcess;
import com.google.refine.process.ProcessManager;
import com.google.refine.process.Process;
import com.google.refine.tests.util.TestUtils;
import com.google.refine.util.JSONUtilities;
public class ProcessManagerTests {
ProcessManager processManager;
Process process;
@BeforeMethod
public void setUp() {
processManager = new ProcessManager();
process = new LongRunningProcessTests.LongRunningProcessStub("some description");
}
@Test
public void serializeProcessManager() throws Exception {
processManager.queueProcess(process);
String processJson = JSONUtilities.serialize(process);
TestUtils.isSerializedTo(processManager, "{"
+ "\"processes\":["+processJson+"]}");
}
}

View File

@ -0,0 +1,40 @@
package com.google.refine.tests.process;
import static org.mockito.Mockito.mock;
import org.testng.annotations.Test;
import com.google.refine.history.HistoryEntry;
import com.google.refine.model.Project;
import com.google.refine.process.QuickHistoryEntryProcess;
import com.google.refine.tests.util.TestUtils;
import com.google.refine.process.Process;
public class QuickHistoryEntryProcessTests {
public static class QuickHistoryEntryProcessStub extends QuickHistoryEntryProcess {
public QuickHistoryEntryProcessStub(Project project, String briefDescription) {
super(project, briefDescription);
}
@Override
protected HistoryEntry createHistoryEntry(long historyEntryID)
throws Exception {
return null;
}
}
@Test
public void serializeQuickHistoryEntryProcess() {
Project project = mock(Project.class);
Process process = new QuickHistoryEntryProcessStub(project, "quick description");
int hashCode = process.hashCode();
TestUtils.isSerializedTo(process, "{"
+ "\"id\":"+hashCode+","
+ "\"description\":"
+ "\"quick description\","
+ "\"immediate\":true,"
+ "\"status\":\"pending\"}");
}
}