groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul King (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (GROOVY-6696) @attribute on groovy.util.Node does not work when meta class is modified
Date Tue, 02 May 2017 02:04:14 GMT

     [ https://issues.apache.org/jira/browse/GROOVY-6696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Paul King closed GROOVY-6696.
-----------------------------

> @attribute on groovy.util.Node does not work when meta class is modified
> ------------------------------------------------------------------------
>
>                 Key: GROOVY-6696
>                 URL: https://issues.apache.org/jira/browse/GROOVY-6696
>             Project: Groovy
>          Issue Type: Bug
>          Components: XML Processing
>    Affects Versions: 2.2.2
>            Reporter: Baptiste Mesta
>            Assignee: John Wagenleitner
>            Priority: Minor
>
> if a closure is added to the meta class it seems that the node.@attribute is not working
anymore
> however it is still working when we use quotes, i.e. node.'@attribute'
> here is some tests that reproduce the probleme, they have to be run alone
> {code:java}
>     @Test
>     public void working() throws Exception {
>         //given
>         def root = new XmlParser().parseText('''<node id="12">value</node>''')
>         //when
>         String id = root.@id;
>         //then
>         assertEquals("12", id);
>     }
>     @Test
>     public void notWorking() throws Exception {
>         //given
>         Node.metaClass.findParent = { closure ->
>             def parent = delegate.parent()
>             if(parent == null){
>                 return null
>             }
>             if(closure(parent)){
>                 return parent
>             }
>             return parent.findParent(closure)
>         }
>         def root = new XmlParser().parseText('''<node id="12">value</node>''')
>         //when
>         String id = root.@id;
>         //then
>         assertEquals("12", id);
>     }
>     @Test
>     public void workingOnlyWithQuotes() throws Exception {
>         //given
>         Node.metaClass.findParent = { closure ->
>             def parent = delegate.parent()
>             if(parent == null){
>                 return null
>             }
>             if(closure(parent)){
>                 return parent
>             }
>             return parent.findParent(closure)
>         }
>         def root = new XmlParser().parseText('''<node id="12">value</node>''')
>         //when
>         String id = root.'@id';
>         //then
>         assertEquals("12", id);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message