You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2021/02/03 22:14:26 UTC
[freemarker-generator] 06/06: FREEMARKER-172 [freemarker-generator]
Start with refactoring
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-172
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit 2608564e2319f3c85a62db4dffa1d079844bf094
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Wed Feb 3 23:10:01 2021 +0100
FREEMARKER-172 [freemarker-generator] Start with refactoring
---
.../datasource/loader/FileDataSourceLoader.java | 2 --
.../src/test/data/txt/utf16.txt | Bin 0 -> 362 bytes
.../src/test/data/txt/utf8.txt | 6 +++++
.../generator/datasource/DataSourceLoaderTest.java | 27 +++++++++++++++++++--
.../datasource/DataSourcesSupplierTest.java | 25 ++++++++++---------
.../generator/datasource/DataSourcesTest.java | 1 -
.../generator/file/RecursiveFileSupplierTest.java | 7 ++++--
.../generator/uri/NamedUriStringParserTest.java | 3 +++
8 files changed, 52 insertions(+), 19 deletions(-)
diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
index f76cb88..1ee8b66 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/loader/FileDataSourceLoader.java
@@ -43,8 +43,6 @@ public class FileDataSourceLoader implements DataSourceLoader {
final String group = namedUri.getGroupOrElse(FreeMarkerConstants.DEFAULT_GROUP);
final Charset charset = namedUri.getCharsetOrElse(UTF_8);
final File file = namedUri.getFile();
- // TODO
- // final String name = namedUri.getNameOrElse(UriUtils.toStringWithoutFragment(file.toURI()));
final String name = namedUri.getNameOrElse(file.getName());
return DataSourceFactory.fromFile(name, group, file, charset);
}
diff --git a/freemarker-generator-base/src/test/data/txt/utf16.txt b/freemarker-generator-base/src/test/data/txt/utf16.txt
new file mode 100755
index 0000000..6dfd2e5
Binary files /dev/null and b/freemarker-generator-base/src/test/data/txt/utf16.txt differ
diff --git a/freemarker-generator-base/src/test/data/txt/utf8.txt b/freemarker-generator-base/src/test/data/txt/utf8.txt
new file mode 100755
index 0000000..25f1e5c
--- /dev/null
+++ b/freemarker-generator-base/src/test/data/txt/utf8.txt
@@ -0,0 +1,6 @@
+UTF-8 encoding
+=============================================================================
+première is first
+première is slightly different
+Кириллица is Cyrillic
+𐐀 am Deseret
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
index 14a1ed9..cbe9aa1 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourceLoaderTest.java
@@ -20,11 +20,13 @@ import org.apache.commons.io.FilenameUtils;
import org.apache.freemarker.generator.base.datasource.DataSource;
import org.apache.freemarker.generator.base.datasource.DataSourceLoader;
import org.apache.freemarker.generator.base.datasource.DataSourceLoaderFactory;
+import org.junit.Ignore;
import org.junit.Test;
import java.io.File;
import static java.lang.String.format;
+import static java.nio.charset.StandardCharsets.UTF_16;
import static java.nio.charset.StandardCharsets.UTF_8;
import static junit.framework.TestCase.assertFalse;
import static org.apache.freemarker.generator.base.FreeMarkerConstants.DEFAULT_GROUP;
@@ -91,7 +93,19 @@ public class DataSourceLoaderTest {
}
@Test
- // @Ignore
+ public void shouldLoadDataSourceFromComplexNameFileUri() {
+ try (DataSource dataSource = dataSourceLoader().load("source=pom.xml#charset=UTF-8&foo=bar")) {
+ assertEquals("pom.xml", dataSource.getFileName());
+ assertEquals("source", dataSource.getName());
+ assertEquals(UTF_8, dataSource.getCharset());
+ assertEquals(MIME_APPLICATION_XML, dataSource.getContentType());
+ assertEquals(ANY_FILE.toURI(), dataSource.getUri());
+ assertFalse(dataSource.getLines().isEmpty());
+ }
+ }
+
+ @Test
+ @Ignore
public void shouldCreateDataSourceFromUrl() {
try (DataSource dataSource = dataSourceLoader().load("https://jsonplaceholder.typicode.com/posts/2")) {
assertEquals("https://jsonplaceholder.typicode.com/posts/2", dataSource.getName());
@@ -105,7 +119,7 @@ public class DataSourceLoaderTest {
}
@Test
- // @Ignore
+ @Ignore
public void shouldCreateDataSourceFromNamedURL() {
try (DataSource dataSource = dataSourceLoader().load("content:www=https://www.google.com?foo=bar#contenttype=application/json")) {
assertEquals("content", dataSource.getName());
@@ -152,6 +166,15 @@ public class DataSourceLoaderTest {
}
}
+ @Test
+ public void shouldLoadDataSourceWithCharset() {
+ final DataSource utf8DataSource = dataSourceLoader().load("./src/test/data/txt/utf8.txt", UTF_8);
+ final DataSource utf16DataSource = dataSourceLoader().load("./src/test/data/txt/utf16.txt", UTF_16);
+
+ // skip the first line before comparing
+ assertEquals(utf8DataSource.getLines().subList(1, 5), utf16DataSource.getLines().subList(1, 5));
+ }
+
private DataSourceLoader dataSourceLoader() {
return DataSourceLoaderFactory.create();
}
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesSupplierTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesSupplierTest.java
index fddc597..70279fc 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesSupplierTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesSupplierTest.java
@@ -64,12 +64,12 @@ public class DataSourcesSupplierTest {
@Test
public void shouldResolveDirectory() {
- assertEquals(5, supplier(DATA_DIRECTORY, null, null).get().size());
- assertEquals(5, supplier(DATA_DIRECTORY, "", null).get().size());
- assertEquals(5, supplier(DATA_DIRECTORY, "*", null).get().size());
- assertEquals(5, supplier(DATA_DIRECTORY, "*.*", null).get().size());
+ assertEquals(7, supplier(DATA_DIRECTORY, null, null).get().size());
+ assertEquals(7, supplier(DATA_DIRECTORY, "", null).get().size());
+ assertEquals(7, supplier(DATA_DIRECTORY, "*", null).get().size());
+ assertEquals(7, supplier(DATA_DIRECTORY, "*.*", null).get().size());
assertEquals(2, supplier(DATA_DIRECTORY, "*.csv", null).get().size());
- assertEquals(1, supplier(DATA_DIRECTORY, "*.t*", null).get().size());
+ assertEquals(3, supplier(DATA_DIRECTORY, "*.t*", null).get().size());
assertEquals(0, supplier(DATA_DIRECTORY, "*.bin", null).get().size());
}
@@ -77,12 +77,12 @@ public class DataSourcesSupplierTest {
public void shouldResolveFilesAndDirectory() {
final List<String> sources = Arrays.asList("pom.xml", "README.md", DATA_DIRECTORY);
- assertEquals(7, supplier(sources, null, null).get().size());
- assertEquals(7, supplier(sources, "", null).get().size());
- assertEquals(7, supplier(sources, "*", null).get().size());
- assertEquals(7, supplier(sources, "*.*", null).get().size());
+ assertEquals(9, supplier(sources, null, null).get().size());
+ assertEquals(9, supplier(sources, "", null).get().size());
+ assertEquals(9, supplier(sources, "*", null).get().size());
+ assertEquals(9, supplier(sources, "*.*", null).get().size());
assertEquals(2, supplier(sources, "*.csv", null).get().size());
- assertEquals(1, supplier(sources, "*.t*", null).get().size());
+ assertEquals(3, supplier(sources, "*.t*", null).get().size());
assertEquals(1, supplier(sources, "*.xml", null).get().size());
assertEquals(0, supplier(sources, "*.bin", null).get().size());
@@ -90,8 +90,8 @@ public class DataSourcesSupplierTest {
assertEquals(0, supplier(sources, null, "*.*").get().size());
assertEquals(0, supplier(sources, "*", "*").get().size());
- assertEquals(6, supplier(sources, "*", "*.md").get().size());
- assertEquals(4, supplier(sources, "*", "file*.*").get().size());
+ assertEquals(8, supplier(sources, "*", "*.md").get().size());
+ assertEquals(6, supplier(sources, "*", "file*.*").get().size());
}
@Test
@@ -142,4 +142,5 @@ public class DataSourcesSupplierTest {
private static DataSourcesSupplier supplier(List<String> files, String include, String exclude) {
return new DataSourcesSupplier(files, include, exclude, Charset.defaultCharset());
}
+
}
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
index 1a9fc6a..2d6154e 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
@@ -76,7 +76,6 @@ public class DataSourcesTest {
assertEquals(3, dataSources.find(GROUP_PART, "d*").size());
assertEquals(3, dataSources.find(GROUP_PART, "d??????").size());
}
-
}
@Test
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileSupplierTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileSupplierTest.java
index 06d5d17..5cc871b 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileSupplierTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/file/RecursiveFileSupplierTest.java
@@ -35,7 +35,7 @@ public class RecursiveFileSupplierTest {
@Test
public void shouldResolveAllFilesOfDirectory() {
- assertEquals(5, fileSupplier(ANY_DIRECTORY, null, null).get().size());
+ assertEquals(7, fileSupplier(ANY_DIRECTORY, null, null).get().size());
assertTrue(fileSupplier(ANY_DIRECTORY, UNKNOWN_FILE_NAME, null).get().isEmpty());
}
@@ -77,10 +77,12 @@ public class RecursiveFileSupplierTest {
public void shouldExcludeFiles() {
final List<File> files = fileSupplier(ANY_DIRECTORY, null, "*.csv").get();
- assertEquals(3, files.size());
+ assertEquals(5, files.size());
assertEquals("nginx.env", files.get(0).getName());
assertEquals("test.properties", files.get(1).getName());
assertEquals("file_01.txt", files.get(2).getName());
+ assertEquals("utf16.txt", files.get(3).getName());
+ assertEquals("utf8.txt", files.get(4).getName());
}
@Test
@@ -105,4 +107,5 @@ public class RecursiveFileSupplierTest {
private static RecursiveFileSupplier fileSupplier(List<String> sources, String include, String exclude) {
return new RecursiveFileSupplier(sources, singletonList(include), singletonList(exclude));
}
+
}
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
index 7954f50..c114525 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/uri/NamedUriStringParserTest.java
@@ -20,6 +20,7 @@ import org.apache.freemarker.generator.base.uri.NamedUri;
import org.apache.freemarker.generator.base.uri.NamedUriStringParser;
import org.junit.Test;
+import static java.nio.charset.StandardCharsets.UTF_16;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -184,6 +185,7 @@ public class NamedUriStringParserTest {
assertNull(namedURI.getGroup());
assertEquals("file:///users.csv#charset=UTF-16&mimeType=text/csv", namedURI.getUri().toString());
assertEquals(2, namedURI.getParameters().size());
+ assertEquals(UTF_16, namedURI.getCharset());
assertEquals("UTF-16", namedURI.getParameters().get("charset"));
assertEquals("text/csv", namedURI.getParameters().get("mimeType"));
}
@@ -260,4 +262,5 @@ public class NamedUriStringParserTest {
private static NamedUri parse(String value) {
return NamedUriStringParser.parse(value);
}
+
}