Skip to content

Commit aa09243

Browse files
authored
Merge pull request #69 from fugerit-org/feature/issue_67_coverage_80
Target 70% coverage
2 parents f627618 + 12de168 commit aa09243

File tree

55 files changed

+1101
-190
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1101
-190
lines changed

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/process/ChainStepModel.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
import java.io.Serializable;
44
import java.util.Properties;
55

6-
import lombok.Data;
6+
import lombok.Getter;
7+
import lombok.Setter;
78

8-
@Data
99
public class ChainStepModel implements Serializable {
1010

1111
private static final long serialVersionUID = 622077549080786391L;
1212

13-
private String stepType;
13+
@Getter @Setter private String stepType;
1414

15-
private Properties attributes;
15+
@Getter @Setter private Properties attributes;
1616

1717
}

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/process/DocChainModel.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import org.fugerit.java.core.cfg.xml.IdConfigType;
99
import org.fugerit.java.core.util.collection.KeyString;
1010

11-
import lombok.Data;
11+
import lombok.Getter;
12+
import lombok.Setter;
1213

13-
@Data
1414
public class DocChainModel implements IdConfigType, KeyString, Serializable {
1515

1616
public static final String MAP_ATTS_ALL = "all";
@@ -23,17 +23,17 @@ public class DocChainModel implements IdConfigType, KeyString, Serializable {
2323

2424
private static final long serialVersionUID = 9076457107043072322L;
2525

26-
private String id;
26+
@Getter @Setter private String id;
2727

28-
private String templatePath = DEFAULT_TEMPLATE_PATH;
28+
@Getter @Setter private String templatePath = DEFAULT_TEMPLATE_PATH;
2929

30-
private String mapAtts = MAP_ATTS_DEFAULT;
30+
@Getter @Setter private String mapAtts = MAP_ATTS_DEFAULT;
3131

32-
private String parent;
32+
@Getter @Setter private String parent;
3333

34-
private Properties mapAttsEnum;
34+
@Getter @Setter private Properties mapAttsEnum;
3535

36-
private List<ChainStepModel> chainStepList = new ArrayList<>();
36+
@Getter private List<ChainStepModel> chainStepList = new ArrayList<>();
3737

3838
@Override
3939
public String getKey() {

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/process/FreemarkerDocProcessConfigFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private static void handleChainStepList( DocChainModel model, Element currentTag
155155
if ( STEP_TYPE_CONFIG.equalsIgnoreCase( chainStepModel.getStepType() ) ) {
156156
NodeList configList = currentChainStepTag.getElementsByTagName( STEP_TYPE_CONFIG );
157157
if ( configList.getLength() != 1 ) {
158-
throw new ConfigException( "Expcted only one config tag : "+configList.getLength() );
158+
throw new ConfigException( "Expected only one config tag : "+configList.getLength() );
159159
} else {
160160
Element configTag = (Element)configList.item( 0 );
161161
atts.putAll( DOMUtils.attributesToProperties( configTag ) );

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/tool/model/ChainModel.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44
import java.util.ArrayList;
55
import java.util.List;
66

7-
import lombok.Data;
7+
import lombok.Getter;
8+
import lombok.Setter;
89

9-
@Data
1010
public class ChainModel implements Serializable {
1111

1212
private static final long serialVersionUID = 3421438389573953861L;
1313

14-
private List<StepModel> stepList;
14+
@Getter private List<StepModel> stepList;
1515

16-
private String id;
16+
@Getter @Setter private String id;
1717

18-
private String parent;
18+
@Getter @Setter private String parent;
1919

2020
public ChainModel( String id ) {
2121
this.setId( id );

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/tool/model/ConfigModel.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,13 @@
44
import java.util.ArrayList;
55
import java.util.List;
66

7-
import lombok.Data;
7+
import lombok.Getter;
88

9-
@Data
109
public class ConfigModel implements Serializable {
1110

1211
private static final long serialVersionUID = 5198896174327509127L;
1312

14-
private List<ChainModel> chainList;
13+
@Getter private List<ChainModel> chainList;
1514

1615
public ConfigModel() {
1716
this.chainList = new ArrayList<>();

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/tool/model/StepModel.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
import java.util.LinkedHashMap;
44
import java.util.Set;
55

6-
import lombok.Data;
6+
import lombok.Getter;
7+
import lombok.Setter;
78

8-
@Data
99
public class StepModel {
1010

11-
private String type;
11+
@Getter @Setter private String type;
1212

13-
private LinkedHashMap<String, String> atts;
13+
@Getter private LinkedHashMap<String, String> atts;
1414

1515
public StepModel(String type) {
1616
super();
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package test.org.fugerit.java.doc.freemarker.coverage;
2+
3+
import java.io.ByteArrayOutputStream;
4+
import java.io.InputStreamReader;
5+
import java.util.Arrays;
6+
7+
import org.fugerit.java.core.function.SafeFunction;
8+
import org.fugerit.java.core.function.SimpleValue;
9+
import org.fugerit.java.core.lang.helpers.ClassHelper;
10+
import org.fugerit.java.doc.base.config.DocInput;
11+
import org.fugerit.java.doc.base.config.DocOutput;
12+
import org.fugerit.java.doc.base.config.DocTypeHandler;
13+
import org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlFragmentTypeHandler;
14+
import org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlFragmentTypeHandlerUTF8;
15+
import org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlTypeHandler;
16+
import org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlTypeHandlerUTF8;
17+
import org.junit.Assert;
18+
import org.junit.Test;
19+
20+
import lombok.AllArgsConstructor;
21+
import lombok.Getter;
22+
import lombok.ToString;
23+
import lombok.extern.slf4j.Slf4j;
24+
25+
@Slf4j
26+
public class TestFreemarkerCoverage {
27+
28+
private final static TestEntry[] TEST_LIST = {
29+
new TestEntry( "default_doc" , true ),
30+
new TestEntry( "default_doc_alt" , true ),
31+
new TestEntry( "default_doc_fail1" , true )
32+
};
33+
34+
private final static DocTypeHandler[] HANDLERS = { FreeMarkerHtmlTypeHandler.HANDLER,
35+
FreeMarkerHtmlTypeHandlerUTF8.HANDLER,
36+
FreeMarkerHtmlFragmentTypeHandler.HANDLER,
37+
FreeMarkerHtmlFragmentTypeHandlerUTF8.HANDLER };
38+
39+
private boolean worker( String path, boolean result ) {
40+
SimpleValue<Boolean> res = new SimpleValue<>(false);
41+
SafeFunction.apply( () -> {
42+
for ( int k=0; k<HANDLERS.length; k++ ) {
43+
DocTypeHandler handler = HANDLERS[k];
44+
try ( InputStreamReader reader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader(path) );
45+
ByteArrayOutputStream buffer = new ByteArrayOutputStream() ) {
46+
handler.handle( DocInput.newInput( handler.getType() , reader ) , DocOutput.newOutput( buffer ) );
47+
if ( result ) {
48+
res.setValue( buffer.toByteArray().length > 0 );
49+
} else {
50+
res.setValue( buffer.toByteArray().length == 0 );
51+
}
52+
}
53+
}
54+
} );
55+
return res.getValue();
56+
}
57+
58+
@Test
59+
public void test01() {
60+
Arrays.asList( TEST_LIST ).stream().forEach( c -> {
61+
log.info( "test -> {}", c );
62+
Assert.assertTrue( this.worker( "coverage/xml/"+c.getId()+".xml", c.isResult() ) );
63+
} );
64+
}
65+
66+
}
67+
68+
@AllArgsConstructor
69+
@ToString
70+
class TestEntry {
71+
72+
@Getter private String id;
73+
74+
@Getter private boolean result;
75+
76+
}

fj-doc-freemarker/src/test/java/test/org/fugerit/java/doc/freemarker/process/TestFreemarkerDocProcessConfig.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
import static org.junit.Assert.fail;
44

5+
import java.io.ByteArrayOutputStream;
56
import java.io.InputStreamReader;
67
import java.io.Reader;
78

9+
import org.fugerit.java.core.cfg.ConfigException;
810
import org.fugerit.java.core.lang.helpers.ClassHelper;
11+
import org.fugerit.java.doc.base.config.DocConfig;
12+
import org.fugerit.java.doc.base.process.DocProcessContext;
913
import org.fugerit.java.doc.freemarker.config.FreeMarkerConfigStep;
1014
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfig;
1115
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfigFacade;
@@ -24,13 +28,49 @@ public void testConfigRead001() {
2428
try ( Reader xmlReader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( "fj_doc_test/freemarker-doc-process.xml" ) ) ) {
2529
FreemarkerDocProcessConfig config = FreemarkerDocProcessConfigFacade.loadConfig(xmlReader);
2630
log.info( "config {}", config.getChain( "sample_chain" ) );
31+
Assert.assertNotNull( config );
2732
} catch (Exception e) {
2833
String message = "Error : "+e;
2934
log.error( message, e );
3035
fail(message);
3136
}
3237
}
3338

39+
private void templateTesting( FreemarkerDocProcessConfig config ) {
40+
DocProcessContext context = DocProcessContext.newContext( "test", "testString" );
41+
runTestEx( () -> {
42+
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream() ) {
43+
config.process( "test_01", DocConfig.TYPE_MD, context, baos, false );
44+
}
45+
} );
46+
runTestEx( () -> {
47+
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream() ) {
48+
config.process( "test_01_alt", DocConfig.TYPE_MD, context, baos, false );
49+
}
50+
} );
51+
runTestEx( () -> {
52+
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream() ) {
53+
// need to make it work in the future!
54+
Assert.assertThrows( NullPointerException.class, () -> {
55+
config.process( "test_01_inline", DocConfig.TYPE_MD, context, baos, false );
56+
} );
57+
}
58+
} );
59+
Assert.assertThrows( ConfigException.class , () -> {
60+
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream() ) {
61+
config.process( "test_01_fail", DocConfig.TYPE_MD, context, baos, false );
62+
}
63+
} );
64+
}
65+
66+
@Test
67+
public void testConfigRead002() {
68+
FreemarkerDocProcessConfig config =
69+
FreemarkerDocProcessConfigFacade.loadConfigSafe( "cl://fj_doc_test/freemarker-doc-process_alt.xml" );
70+
Assert.assertNotNull( config );
71+
this.templateTesting(config);
72+
}
73+
3474
@Test
3575
public void testConfigValidate001() {
3676
try ( Reader xmlReader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( "fj_doc_test/freemarker-doc-process.xml" ) ) ) {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package test.org.fugerit.java.doc.freemarker.tool;
2+
3+
import java.io.InputStream;
4+
import java.io.StringWriter;
5+
import java.util.Properties;
6+
7+
import org.fugerit.java.core.lang.helpers.ClassHelper;
8+
import org.fugerit.java.doc.freemarker.tool.GenerateStub;
9+
import org.junit.Assert;
10+
import org.junit.Test;
11+
12+
import test.org.fugerit.java.BasicTest;
13+
14+
public class TestGenerateStub extends BasicTest {
15+
16+
@Test
17+
public void genTest001() {
18+
runTestEx( () -> {
19+
try ( InputStream is = ClassHelper.loadFromDefaultClassLoader( "generate-stub-test/doc-process-autodoc.xml" );
20+
StringWriter writer = new StringWriter() ) {
21+
Properties props = new Properties();
22+
GenerateStub.generate( writer, props, is );
23+
Assert.assertNotEquals( 0 , writer.toString().length() );
24+
}
25+
} );
26+
}
27+
28+
@Test
29+
public void genTest002() {
30+
runTestEx( () -> {
31+
try (StringWriter writer = new StringWriter() ) {
32+
Properties props = new Properties();
33+
props.setProperty( GenerateStub.ARG_INPUT_FILE , "src/test/resources/generate-stub-test/doc-process-autodoc.xml" );
34+
GenerateStub.generate( writer, props );
35+
Assert.assertNotEquals( 0 , writer.toString().length() );
36+
}
37+
} );
38+
}
39+
40+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<doc
3+
xmlns="http://javacoredoc.fugerit.org"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://javacoredoc.fugerit.org https://www.fugerit.org/data/java/doc/xsd/doc-2-1.xsd" >
6+
7+
<metadata>
8+
<!-- Margin for document : left;right;top;bottom -->
9+
<info name="margins">10;10;10;30</info>
10+
<info name="excel-table-id">excel-table=print</info>
11+
<!-- documenta meta information -->
12+
<info name="doc-title">Basic example</info>
13+
<info name="doc-subject">fj doc venus sample source xml</info>
14+
<info name="doc-author">fugerit79</info>
15+
<info name="doc-language">en</info>
16+
<!-- additional properties -->
17+
<info name="set-total-page">true</info>
18+
<info name="html-css-link">/css/test.css</info>
19+
<!-- CSV options -->
20+
<info name="csv-table-id">excel-table</info>
21+
<header-ext>
22+
<para align="center" fore-color="#eeeeee">header test</para>
23+
</header-ext>
24+
<footer-ext>
25+
<para align="left">test</para>
26+
<para align="center">${r"${currentPage}"} / ${r"${pageCount}"}</para>
27+
<para align="right">test</para>
28+
</footer-ext>
29+
<bookmark-tree>
30+
<bookmark ref="title">Test</bookmark>
31+
</bookmark-tree>
32+
</metadata>
33+
<body>
34+
<h id="title" head-level="1">main title h1</h>
35+
<para font-name="times-roman" style="bold">Test times roman</para>
36+
<para font-name="courier" style="bolditalic">Courier</para>
37+
<para font-name="symbol" style="italic">Symbol</para>
38+
<para font-name="helvetica" style="underline">Symbol</para>
39+
<para size="3" fore-color="#dddddd">Test default font</para>
40+
<br/>
41+
<page-break/>
42+
<table columns="3" colwidths="30;30;40" width="100" id="excel-table" padding="2">
43+
<row>
44+
<cell align="center" border-color="#000000" border-width="1"><para style="bold">Name</para></cell>
45+
<cell align="center"><para style="bold">Surname</para></cell>
46+
<cell align="center"><para style="bold">Title</para></cell>
47+
</row>
48+
<row>
49+
<cell><para><![CDATA[Luthien]]></para></cell>
50+
<cell><para><![CDATA[Tinuviel]]></para></cell>
51+
<cell><para><![CDATA[Queen]]></para></cell>
52+
</row>
53+
<row>
54+
<cell><para><![CDATA[Thorin]]></para></cell>
55+
<cell><para><![CDATA[Oakshield]]></para></cell>
56+
<cell><para><![CDATA[King]]></para></cell>
57+
</row>
58+
<row>
59+
<cell><phrase><![CDATA[Phrase]]></phrase></cell>
60+
<cell><phrase anchor="1"><![CDATA[Oakshield]]></phrase></cell>
61+
<cell><phrase link="1"><![CDATA[King]]></phrase></cell>
62+
</row>
63+
</table>
64+
<list>
65+
<li><para>test 1</para></li>
66+
</list>
67+
<list list-type="ul">
68+
<li><para>test 2</para></li>
69+
</list>
70+
<list list-type="ol">
71+
<li><para>test 3</para></li>
72+
</list>
73+
<list list-type="uld">
74+
<li><para>test 4</para></li>
75+
</list>
76+
<list list-type="ulm">
77+
<li><para>test 5</para></li>
78+
</list>
79+
<list list-type="oll">
80+
<li><para>test 6</para></li>
81+
</list>
82+
<list list-type="oln">
83+
<li><para>test 7</para></li>
84+
</list>
85+
</body>
86+
87+
</doc>

0 commit comments

Comments
 (0)