From e137f3c3564cdf7af53fcde30fb464bbebb401a7 Mon Sep 17 00:00:00 2001 From: haijian Date: Sun, 13 Dec 2020 21:16:06 +0200 Subject: [PATCH] apply code review suggestions --- .../startup/DevModeInitializerTest.java | 103 ++++++++++++------ .../startup/DevModeInitializerTestBase.java | 8 +- 2 files changed, 78 insertions(+), 33 deletions(-) diff --git a/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java b/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java index 3e5ec2696cb..03381c7f058 100644 --- a/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java +++ b/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTest.java @@ -300,54 +300,93 @@ public void shouldUseFullPathScannerByDefault() throws Exception { @Test public void should_generateOpenApi_when_EndpointPresents() throws Exception { + String originalJavaSourceFolder = null; + try { + originalJavaSourceFolder = System.getProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); - // Configure a folder to check the endpoints, doesn't matter - // which folder, since the actual task won't be run, just - // to verify the mocked task is executed. - File src = new File( - getClass().getClassLoader().getResource("com").getFile()); - System.setProperty("vaadin." + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, - src.getAbsolutePath()); + // Configure a folder to check the endpoints, doesn't matter + // which folder, since the actual task won't be run, just + // to verify the mocked task is executed. + System.setProperty("vaadin." + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, + javaSourceFolder.getRoot().getAbsolutePath()); - File generatedOpenApiJson = Paths - .get(baseDir, DEFAULT_CONNECT_OPENAPI_JSON_FILE).toFile(); + File generatedOpenApiJson = Paths + .get(baseDir, DEFAULT_CONNECT_OPENAPI_JSON_FILE).toFile(); + + Assert.assertFalse(generatedOpenApiJson.exists()); + DevModeInitializer devModeInitializer = new DevModeInitializer(); + devModeInitializer.onStartup(classes, servletContext); + waitForDevModeServer(); + + Mockito.verify(taskGenerateConnect, times(1)).execute(); + } finally { + if (originalJavaSourceFolder != null) { + System.setProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, originalJavaSourceFolder); + } else { + System.clearProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); + } + } - Assert.assertFalse(generatedOpenApiJson.exists()); - DevModeInitializer devModeInitializer = new DevModeInitializer(); - devModeInitializer.onStartup(classes, servletContext); - waitForDevModeServer(); - - Mockito.verify(taskGenerateConnect, times(1)).execute(); } @Test public void should_notGenerateOpenApi_when_EndpointIsNotUsed() throws Exception { - File generatedOpenApiJson = Paths - .get(baseDir, DEFAULT_CONNECT_OPENAPI_JSON_FILE).toFile(); - Assert.assertFalse(generatedOpenApiJson.exists()); - devModeInitializer.onStartup(classes, servletContext); - - Mockito.verify(taskGenerateConnect, times(0)).execute(); + String originalJavaSourceFolder = null; + try { + originalJavaSourceFolder = System.getProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); + System.clearProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); + + File generatedOpenApiJson = Paths + .get(baseDir, DEFAULT_CONNECT_OPENAPI_JSON_FILE).toFile(); + Assert.assertFalse(generatedOpenApiJson.exists()); + devModeInitializer.onStartup(classes, servletContext); + + Mockito.verify(taskGenerateConnect, times(0)).execute(); + } finally { + if (originalJavaSourceFolder != null) { + System.setProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, originalJavaSourceFolder); + } else { + System.clearProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); + } + } } @Test public void should_generateTs_files() throws Exception { + String originalJavaSourceFolder = null; + try { + originalJavaSourceFolder = System.getProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); - // Configure a folder to check the endpoints, doesn't matter - // which folder, since the actual task won't be run, just - // to verify the mocked task is executed. - File src = new File( - getClass().getClassLoader().getResource("com").getFile()); - System.setProperty("vaadin." + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, - src.getAbsolutePath()); + // Configure a folder to check the endpoints, doesn't matter + // which folder, since the actual task won't be run, just + // to verify the mocked task is executed. + System.setProperty("vaadin." + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, + javaSourceFolder.getRoot().getAbsolutePath()); - DevModeInitializer devModeInitializer = new DevModeInitializer(); + DevModeInitializer devModeInitializer = new DevModeInitializer(); - devModeInitializer.onStartup(classes, servletContext); - waitForDevModeServer(); + devModeInitializer.onStartup(classes, servletContext); + waitForDevModeServer(); - Mockito.verify(taskGenerateConnect, times(1)).execute(); + Mockito.verify(taskGenerateConnect, times(1)).execute(); + } finally { + if (originalJavaSourceFolder != null) { + System.setProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN, originalJavaSourceFolder); + } else { + System.clearProperty("vaadin." + + CONNECT_JAVA_SOURCE_FOLDER_TOKEN); + } + } } @Test diff --git a/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java b/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java index fba08cee562..cb557cf3c5e 100644 --- a/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java +++ b/flow-server/src/test/java/com/vaadin/flow/server/startup/DevModeInitializerTestBase.java @@ -21,6 +21,7 @@ import org.junit.After; import org.junit.Assert; import org.junit.Before; +import org.junit.Rule; import org.junit.rules.TemporaryFolder; import org.mockito.Mockito; @@ -65,13 +66,16 @@ public class DevModeInitializerTestBase { File mainPackageFile; File webpackFile; String baseDir; - Lookup lookup = Mockito.mock(Lookup.class);; + Lookup lookup; EndpointGeneratorTaskFactory endpointGeneratorTaskFactory; TaskGenerateConnect taskGenerateConnect; TaskGenerateOpenApi taskGenerateOpenApi; public final TemporaryFolder temporaryFolder = new TemporaryFolder(); + @Rule + public final TemporaryFolder javaSourceFolder = new TemporaryFolder(); + public static class VaadinServletSubClass extends VaadinServlet { } @@ -92,6 +96,7 @@ public void setup() throws Exception { ServletRegistration vaadinServletRegistration = Mockito .mock(ServletRegistration.class); + lookup = Mockito.mock(Lookup.class);; Mockito.when(servletContext.getAttribute(Lookup.class.getName())) .thenReturn(lookup); endpointGeneratorTaskFactory = Mockito.mock(EndpointGeneratorTaskFactory.class); @@ -187,6 +192,7 @@ public void teardown() throws Exception, SecurityException { webpackFile.delete(); mainPackageFile.delete(); temporaryFolder.delete(); + javaSourceFolder.delete(); if (getDevModeHandler() != null) { getDevModeHandler().stop(); }