identityclosuretest.groovy

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

GROOVY
73
字号
/** * Check that Object.identity(Closure) method works as expected * * @author Jeremy Rayner * @author Guillaume Laforge */class IdentityClosureTest extends GroovyTestCase {        def foo = [[1,2,3],[4,5,6],[7,8,9]]    def bar = " bar "    def mooky = 1    /** most useful perceived usecase, almost like with(expr) */    void testIdentity0() {        assert " bar " == bar        bar.toUpperCase().trim().identity{            assert "BAR" == it            assert 3 == it.size()            assert it.indexOf("A") > 0        }    }      /** check the basics */    void testIdentity1() {        mooky.identity{ spooky->            assert spooky == mooky        }    }    /** test temp shortcut to an element of an array */    void testIdentity2() {        assert 6 == foo[1][2]                foo[1].identity{ myArray->            myArray[2] = 12        }                assert 12 == foo[1][2]    }    /** check nested identity usage */    void testIdentity3() {        mooky.toString().identity{ m->            assert "1" == m            m += "234567890"            m.identity{ n->                assert "1234567890" == n            }        }    }    /** Test the closure delegate */    void testClosureDelegate1() {        bar.toUpperCase().trim().identity{            assert "BAR" == it            assert 3 == size()            assert indexOf("A") > 0        }    }    /** Test the closure delegate with Expandos */    void testClosureDelegate2() {        def a = new Expando()        a.foobar = "foobar"        a.barfoo = 555        a.identity{            assert this.foobar == "foobar"            assert this.barfoo == 555        }    }}

⌨️ 快捷键说明

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