示例#1
0
 def test_can_write_js_with_extends_and_constructor(self):
     EXPECTED = "var Dog=function(name,age){var self=this;var $super=new Animal(name,age);$.extend(true,self,$super);var $ctor=function(name,age){};$ctor(name,age);};"
     cls = Class("Dog",extends="Animal")
     cls.constructor_params.append("name")
     cls.constructor_params.append("age")
     cls.super_params.append("name")
     cls.super_params.append("age")
     assert_that(cls.to_js(),is_(EXPECTED))
示例#2
0
 def test_can_write_everything(self):
     EXPECTED = "".join(('',
                'var Dog=function(name,age,breed)',
                '{',
                'var self=this;',
                'var $super=new Animal(name,age);',
                '$.extend(true,self,$super);',
                'var $ctor=function(name,age,breed)',
                '{this.breed=breed;};',
                '',
                'var priv="private";',
                'var priv2=function()',
                '{return "this is a private function";};',
                '',
                'var privNone=null;',
                'self.makeNoise=function()',
                '{alert("Bark!");};',
                '',
                'self.pub="public";',
                'self.pubNone=null;',
                '$ctor(name,age,breed);'
                ,'};',
                'Dog.statNone=null;',
                'Dog.static1="Hello";'
                ))
     cls = Class("Dog",extends="Animal")
     cls.constructor_params.append("name")
     cls.constructor_params.append("age")
     cls.constructor_params.append("breed")
     cls.constructor_body="this.breed=breed;"
     cls.super_params.append("name")
     cls.super_params.append("age")
     priv = "\"private\""
     priv2 = """function(){return "this is a private function";}"""
     pub = '"public"'
     makeNoise = """function(){alert("Bark!");}"""
     cls.private["priv"]=priv
     cls.private["priv2"]=priv2
     cls.private["privNone"]=None
     cls.public["pub"]=pub
     cls.public["pubNone"]=None
     cls.public["makeNoise"]=makeNoise
     cls.static["static1"]='"Hello"'
     cls.static["statNone"]=None
     assert_that(cls.to_js(),is_(EXPECTED))
示例#3
0
class TestClass(TestCase):
    def setUp(self):
        self.cls = Class("Animal")
        
    def test_cannot_rename_name(self):
        try:
            self.cls.name = "Dog"
            self.fail("Shouldn't be able to rename.")
        except AttributeError:
            pass
        
    def test_can_write_js(self):
        EXPECTED = "var Animal=function(){var self=this;var $ctor=function(){};$ctor();};"
        assert_that(self.cls.to_js(),is_(EXPECTED))
        
    def test_can_write_js_with_extends_and_constructor(self):
        EXPECTED = "var Dog=function(name,age){var self=this;var $super=new Animal(name,age);$.extend(true,self,$super);var $ctor=function(name,age){};$ctor(name,age);};"
        cls = Class("Dog",extends="Animal")
        cls.constructor_params.append("name")
        cls.constructor_params.append("age")
        cls.super_params.append("name")
        cls.super_params.append("age")
        assert_that(cls.to_js(),is_(EXPECTED))
        
    def test_can_write_everything(self):
        EXPECTED = "".join(('',
                   'var Dog=function(name,age,breed)',
                   '{',
                   'var self=this;',
                   'var $super=new Animal(name,age);',
                   '$.extend(true,self,$super);',
                   'var $ctor=function(name,age,breed)',
                   '{this.breed=breed;};',
                   '',
                   'var priv="private";',
                   'var priv2=function()',
                   '{return "this is a private function";};',
                   '',
                   'var privNone=null;',
                   'self.makeNoise=function()',
                   '{alert("Bark!");};',
                   '',
                   'self.pub="public";',
                   'self.pubNone=null;',
                   '$ctor(name,age,breed);'
                   ,'};',
                   'Dog.statNone=null;',
                   'Dog.static1="Hello";'
                   ))
        cls = Class("Dog",extends="Animal")
        cls.constructor_params.append("name")
        cls.constructor_params.append("age")
        cls.constructor_params.append("breed")
        cls.constructor_body="this.breed=breed;"
        cls.super_params.append("name")
        cls.super_params.append("age")
        priv = "\"private\""
        priv2 = """function(){return "this is a private function";}"""
        pub = '"public"'
        makeNoise = """function(){alert("Bark!");}"""
        cls.private["priv"]=priv
        cls.private["priv2"]=priv2
        cls.private["privNone"]=None
        cls.public["pub"]=pub
        cls.public["pubNone"]=None
        cls.public["makeNoise"]=makeNoise
        cls.static["static1"]='"Hello"'
        cls.static["statNone"]=None
        assert_that(cls.to_js(),is_(EXPECTED))