blob: dd58b65e1b62bc72e843a4c318ca29d664a34650 [file] [log] [blame]
package groovy.bugs
import groovy.xml.MarkupBuilder
/**
* @author Ted Leung
* @version $Revision$
*/
class TedsClosureBug extends GroovyTestCase {
def EXPECTED= '''<atom>
<title>Ted Leung off the air</title>
<link>http://www.sauria.com/noblog</link>
<author>
<person>
<name>Ted Leung</name>
<url>http://www.sauria.com/blog</url>
<email>twl@sauria.com</email>
</person>
</author>
<entry>
<title>one</title>
<summary>first post</summary>
</entry>
<entry>
<title>two</title>
<summary>the second post</summary>
</entry>
<entry>
<title>three</title>
<summary>post the third</summary>
</entry>
<entry>
<title>four</title>
<summary>the ponderous fourth post</summary>
</entry>
</atom>'''
void testBug() {
def f = new Feed()
f.author = new Person(name:'Ted Leung',url:'http://www.sauria.com/blog', email:'twl@sauria.com')
f.entries = [ new Entry(title:'one',summary:'first post'), new Entry(title:'two',summary:'the second post'), new Entry(title:'three', summary:'post the third'), new Entry(title:'four',summary:'the ponderous fourth post') ]
def sw = new StringWriter()
def xml = new MarkupBuilder(sw)
def atom = xml.atom() {
title("Ted Leung off the air")
link("http://www.sauria.com/noblog")
author() {
person() {
name(f.author.name)
url(f.author.url)
email(f.author.email)
}
}
for (e in f.entries) {
entry() {
title(e.title)
summary(e.summary)
}
}
}
StringTestUtil.assertMultilineStringsEqual(EXPECTED, sw.toString())
}
}
class Feed {
String title
String link
Person author
String tagline
String generator
String copyright
String modified
List entries
}
class Entry {
String title
String link
String id
String summary
String content
Person author
String created
String issued
String modified
}
class Person {
String name
String url
String email
}