From bc6f1b0146ad35744b69e56ee5fab615f6998158 Mon Sep 17 00:00:00 2001 From: Antonin Delpeuch Date: Thu, 11 Oct 2018 19:57:41 +0100 Subject: [PATCH] Fix failing tests after JSONWriter replacement --- .../src/com/google/refine/commands/Command.java | 13 ++++++------- .../refine/tests/browsing/EngineTests.java | 2 +- .../util/CancelProcessesCommandTests.java | 17 +++++++++++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/main/src/com/google/refine/commands/Command.java b/main/src/com/google/refine/commands/Command.java index 680b4daa7..f60dc15cb 100644 --- a/main/src/com/google/refine/commands/Command.java +++ b/main/src/com/google/refine/commands/Command.java @@ -348,18 +348,17 @@ public abstract class Command { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Type", "application/json"); - Writer w = response.getWriter(); - JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w); - writer.writeStartObject(); - writer.writeStringField("code", "error"); - writer.writeStringField("message", e.getMessage()); - StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); pw.flush(); sw.flush(); - + + Writer w = response.getWriter(); + JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w); + writer.writeStartObject(); + writer.writeStringField("code", "error"); + writer.writeStringField("message", e.getMessage()); writer.writeStringField("stack", sw.toString()); writer.writeEndObject(); writer.flush(); diff --git a/main/tests/server/src/com/google/refine/tests/browsing/EngineTests.java b/main/tests/server/src/com/google/refine/tests/browsing/EngineTests.java index e997d1274..e6d875452 100644 --- a/main/tests/server/src/com/google/refine/tests/browsing/EngineTests.java +++ b/main/tests/server/src/com/google/refine/tests/browsing/EngineTests.java @@ -13,6 +13,6 @@ public class EngineTests { public void serializeEngine() { Project project = mock(Project.class); Engine engine = new Engine(project); - TestUtils.isSerializedTo(engine, "{\"mode\":\"row-based\",\"facets\":[]}"); + TestUtils.isSerializedTo(engine, "{\"engine-mode\":\"row-based\",\"facets\":[]}"); } } diff --git a/main/tests/server/src/com/google/refine/tests/commands/util/CancelProcessesCommandTests.java b/main/tests/server/src/com/google/refine/tests/commands/util/CancelProcessesCommandTests.java index 350d45a9b..a1ed70c2a 100644 --- a/main/tests/server/src/com/google/refine/tests/commands/util/CancelProcessesCommandTests.java +++ b/main/tests/server/src/com/google/refine/tests/commands/util/CancelProcessesCommandTests.java @@ -41,6 +41,7 @@ import static org.mockito.Mockito.when; import java.io.IOException; import java.io.PrintWriter; +import java.io.StringWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -58,6 +59,7 @@ import com.google.refine.commands.history.CancelProcessesCommand; import com.google.refine.model.Project; import com.google.refine.process.ProcessManager; import com.google.refine.tests.RefineTest; +import com.google.refine.tests.util.TestUtils; public class CancelProcessesCommandTests extends RefineTest { @@ -80,6 +82,7 @@ public class CancelProcessesCommandTests extends RefineTest { ProjectManager projMan = null; Project proj = null; ProcessManager processMan = null; + StringWriter sw = null; PrintWriter pw = null; @BeforeMethod @@ -88,7 +91,8 @@ public class CancelProcessesCommandTests extends RefineTest { ProjectManager.singleton = projMan; proj = mock(Project.class); processMan = mock(ProcessManager.class); - pw = mock(PrintWriter.class); + sw = new StringWriter(); + pw = new PrintWriter(sw); request = mock(HttpServletRequest.class); response = mock(HttpServletResponse.class); @@ -102,7 +106,7 @@ public class CancelProcessesCommandTests extends RefineTest { projMan = null; ProjectManager.singleton = null; proj = null; - pw = null; + sw = null; request = null; response = null; } @@ -186,7 +190,7 @@ public class CancelProcessesCommandTests extends RefineTest { } catch (IOException e) { Assert.fail(); } - verify(pw, times(1)).write("{ \"code\" : \"ok\" }"); + TestUtils.assertEqualAsJson("{ \"code\" : \"ok\" }", sw.toString()); } @Test @@ -195,6 +199,11 @@ public class CancelProcessesCommandTests extends RefineTest { when(request.getParameter("project")).thenReturn(PROJECT_ID); when(projMan.getProject(anyLong())) .thenReturn(null); + try { + when(response.getWriter()).thenReturn(pw); + } catch (IOException e1) { + Assert.fail(); + } // run try { @@ -238,7 +247,7 @@ public class CancelProcessesCommandTests extends RefineTest { verify(projMan, times(1)).getProject(PROJECT_ID_LONG); verify(processMan, times(1)).cancelAll(); - verify(response, times(3)).setCharacterEncoding("UTF-8"); + verify(response, times(2)).setCharacterEncoding("UTF-8"); //omitted other verifications for brevity. //assumption is that expecting response.setCharacterEncoding times(3) //implies it has Command.respondException has been called as expected