1+ package com.baeldung.templateengine
2+
3+ import groovy.text.SimpleTemplateEngine
4+ import groovy.text.StreamingTemplateEngine
5+ import groovy.text.GStringTemplateEngine
6+ import groovy.text.XmlTemplateEngine
7+ import groovy.text.XmlTemplateEngine
8+ import groovy.text.markup.MarkupTemplateEngine
9+ import groovy.text.markup.TemplateConfiguration
10+
11+ class TemplateEnginesUnitTest extends GroovyTestCase {
12+
13+ def bindMap = [user : " Norman" , signature : " Baeldung" ]
14+
15+ void testSimpleTemplateEngine () {
16+ def smsTemplate = ' Dear <% print user %>, Thanks for reading our Article. ${signature}'
17+ def smsText = new SimpleTemplateEngine (). createTemplate(smsTemplate). make(bindMap)
18+
19+ assert smsText. toString() == " Dear Norman, Thanks for reading our Article. Baeldung"
20+ }
21+
22+ void testStreamingTemplateEngine () {
23+ def articleEmailTemplate = new File (' src/main/resources/articleEmail.template' )
24+ bindMap. articleText = """ 1. Overview
25+ This is a tutorial article on Template Engines""" // can be a string larger than 64k
26+
27+ def articleEmailText = new StreamingTemplateEngine (). createTemplate(articleEmailTemplate). make(bindMap)
28+
29+ assert articleEmailText. toString() == """ Dear Norman,
30+ Please read the requested article below.
31+ 1. Overview
32+ This is a tutorial article on Template Engines
33+ From,
34+ Baeldung"""
35+
36+ }
37+
38+ void testGStringTemplateEngine () {
39+ def emailTemplate = new File (' src/main/resources/email.template' )
40+ def emailText = new GStringTemplateEngine (). createTemplate(emailTemplate). make(bindMap)
41+
42+ assert emailText. toString() == " Dear Norman,\n Thanks for subscribing our services.\n Baeldung"
43+ }
44+
45+ void testXmlTemplateEngine () {
46+ def emailXmlTemplate = ''' <xs xmlns:gsp='groovy-server-pages'>
47+ <gsp:scriptlet>def emailContent = "Thanks for subscribing our services."</gsp:scriptlet>
48+ <email>
49+ <greet>Dear ${user}</greet>
50+ <content><gsp:expression>emailContent</gsp:expression></content>
51+ <signature>${signature}</signature>
52+ </email>
53+ </xs>'''
54+ def emailXml = new XmlTemplateEngine (). createTemplate(emailXmlTemplate). make(bindMap)
55+ println emailXml. toString()
56+ }
57+
58+ void testMarkupTemplateEngineHtml () {
59+ def emailHtmlTemplate = """ html {
60+ head {
61+ title('Service Subscription Email')
62+ }
63+ body {
64+ p('Dear Norman')
65+ p('Thanks for subscribing our services.')
66+ p('Baeldung')
67+ }
68+ }"""
69+
70+
71+ def emailHtml = new MarkupTemplateEngine (). createTemplate(emailHtmlTemplate). make()
72+ println emailHtml. toString()
73+
74+ }
75+
76+ void testMarkupTemplateEngineXml () {
77+ def emailXmlTemplate = """ xmlDeclaration()
78+ xs{
79+ email {
80+ greet('Dear Norman')
81+ content('Thanks for subscribing our services.')
82+ signature('Baeldung')
83+ }
84+ }
85+ """
86+ TemplateConfiguration config = new TemplateConfiguration ()
87+ config. autoIndent = true
88+ config. autoEscape = true
89+ config. autoNewLine = true
90+
91+ def emailXml = new MarkupTemplateEngine (config). createTemplate(emailXmlTemplate). make()
92+
93+ println emailXml. toString()
94+ }
95+
96+ }
0 commit comments