Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业务

源代码在线查看: gstringtest.groovy

软件大小: 1644 K
上传用户: maple_78
关键词: Groovy JVM 动态语言 运行
下载地址: 免注册下载 普通下载 VIP

相关代码

				class GStringTest extends GroovyTestCase {
				
				    void check(template, teststr) {
				        assert template instanceof GString
				
				        def count = template.getValueCount()
				        assert count == 1
				        assert template.getValue(0) == "Bob"
				
				        def string = template.toString()
				        assert string == teststr
				    }
				
				    void testWithOneVariable() {
				        def name = "Bob"
				        def teststr = "hello Bob how are you?"
				
				
				    check("hello $name how are you?", teststr)
				    check("hello ${name} how are you?", teststr)
				    check("hello ${println "feep"; name} how are you?", teststr)
				    check(/hello $name how are you?/, teststr)
				    check(/hello ${name} how are you?/, teststr)
				    check(/hello ${println "feep"; name} how are you?/, teststr)
				    }
				
				    void testWithVariableAtEnd() {
				        def name = "Bob"
				        def teststr = "hello Bob"
				
				        check("hello $name", teststr)
				        check("hello ${name}", teststr)
				        check(/hello $name/, teststr)
				        check(/hello ${name}/, teststr)
				    }
				    
				    void testWithVariableAtBeginning() {
				        def name = "Bob"
				        def teststr = "Bob hey"
				        check("$name hey", teststr)
				        check("${name} hey", teststr)
				        name = ""
				        check("${name += "Bob"; name} hey", teststr)
				        assert name == "Bob"
				        check(/$name hey/, teststr)
				        check(/${name} hey/, teststr)
				        name = ""
				        check(/${name += "Bob"; name} hey/, teststr)
				    }
				
				    void testWithJustVariable() {
				        def teststr
				        def name = teststr = "Bob"
				        check("$name", teststr)
				        check("${name}", teststr)
				        check("${assert name=="Bob"; name}", teststr)
				        // Put punctuation after the variable name:
				        check("$name.", "Bob.")
				        check("$name...", "Bob...")
				        check("$name?", "Bob?")
				
				        check(/$name/, teststr)
				        check(/${name}/, teststr)
				        check(/${assert name=="Bob"; name}/, teststr)
				        // Put punctuation after the variable name:
				        check(/$name./, "Bob.")
				        check(/$name.../, "Bob...")
				        check(/$name?/, "Bob?")
				        check(/$name\?/, "Bob\\?")
				        check(/$name$/, "Bob\$")
				
				        def guy = [name: name]
				        check("${guy.name}", "Bob")
				        check("$guy.name", "Bob")
				        check("$guy.name.", "Bob.")
				        check("$guy.name...", "Bob...")
				        check("$guy.name?", "Bob?")
				        check(/$guy.name/, "Bob")
				        check(/$guy.name./, "Bob.")
				        check(/$guy.name.../, "Bob...")
				        check(/$guy.name?/, "Bob?")
				        check(/$guy.name\?/, "Bob\\?")
				        check(/$guy.name$/, "Bob\$")
				    }
				    
				    void testWithTwoVariables() {
				        def name = "Bob"
				        def template = "${name}${name}"
				        def string = template.toString()
				        
				        assert string == "BobBob"
				    }
				    
				    void testWithTwoVariablesWithSpace() {
				        def name = "Bob"
				        def template = "${name} ${name}"
				        def string = template.toString()
				        
				        assert string == "Bob Bob"
				    }
				    
				    void testAppendString() {
				        def a = "dog" 
				        def b = "a ${a}"
				        
				        def c = b + " cat"
				
				        println("Created ${c}")
				        
				        assert c.toString() == "a dog cat" , c
				        
				        b += " cat"
				        
				        assert b.toString() == "a dog cat" , b
				    }
				    
				    void testAppendGString() {
				        def a = "dog" 
				        def b = "a ${a}" 
				        b += " cat${a}"
				        
				        assert b.toString() == "a dog catdog" , b
				        
				        println("Created ${b}")
				    }
				    
				    void testReturnString() {
				        def value = dummyMethod()
				        assert value == "Hello Gromit!"
				    }
				    
				    String dummyMethod() {
				        def name = "Gromit"
				        return "Hello ${name}!"
				    }
				    
				    void testCoerce() {
				        def enc = "US-ASCII"
				        def value = "test".getBytes("${enc}")
				        
				        println "Created ${value}"
				        assert value != null
				    }
				    
				    void testGroovy441() {
				        def arg = "test"
				        def content = "${arg} ="
				
				        if (arg != "something") {
				            content += "?"
				        }
				
				        content += "= ${arg}."
				
				        assert content == "test =?= test."
				    }
				
				    void testTwoStringsInMiddle() {
				        def a = "---"
				        def b = "${a} :"
				        b += "				        b += ">>"
				        b += ": ${a}"
				        assert b == "--- :: ---"
				    }
				
				    void testAlternatingGStrings() {
				        def a = "---"
				        def b = "${a} :"
				        b += "				        b += " [[${a}]] "
				        b += ">>"
				        b += ": ${a}"
				        assert b == "--- :>: ---"
				    }
				
				    // Test case for bug GROOVY-599
				    void testGStringInStaticMethod() {
				        int value = 2
				        String str = "1${value}3"
				        int result = Integer.parseInt(str)
				        assert result == 123
				        result = Integer.parseInt("1${value}3")
				        assert result == 123
				    }
				 }
							

相关资源