orderbytest.groovy

来自「大名鼎鼎的java动态脚本语言。已经通过了sun的认证」· GROOVY 代码 · 共 55 行

GROOVY
55
字号
class OrderByTest extends GroovyTestCase {    void testSortByOneField() {        def builder = new NodeBuilder()        def tree = builder.people {            person(name:'James', cheese:'Edam', location:'London')            person(name:'Bob', cheese:'Cheddar', location:'Atlanta')            person(name:'Chris', cheese:'Red Leicester', location:'London')            person(name:'Joe', cheese:'Brie', location:'London')        }                def people = tree.children()                /** @todo parser should allow this syntax sugar        def order = new OrderBy { it.get('@cheese') }        */        def order = new OrderBy( { it.get('@cheese') } )        def sorted = people.sort(order)                assert sorted.get(0).get('@name') == 'Joe'        assert sorted.get(1).get('@name') == 'Bob'        assert sorted.get(2).get('@name') == 'James'        assert sorted.get(3).get('@name') == 'Chris'                order = new OrderBy( { it.get('@name') } )        sorted = people.sort(order)                assert sorted.get(0).get('@name') == 'Bob'        assert sorted.get(1).get('@name') == 'Chris'        assert sorted.get(2).get('@name') == 'James'        assert sorted.get(3).get('@name') == 'Joe'    }    void testSortByMultipleFields() {        def builder = new NodeBuilder()        def tree = builder.people {            person(name:'James', cheese:'Edam', location:'London')            person(name:'Bob', cheese:'Cheddar', location:'Atlanta')            person(name:'Chris', cheese:'Red Leicester', location:'London')            person(name:'Joe', cheese:'Brie', location:'London')        }                def people = tree.children()        def order = new OrderBy([ { it.get('@location') }, { it.get('@cheese') } ])        def sorted = people.sort(order)                assert sorted.get(0).get('@name') == 'Bob'        assert sorted.get(1).get('@name') == 'Joe'        assert sorted.get(2).get('@name') == 'James'        assert sorted.get(3).get('@name') == 'Chris'    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?