diff options
Diffstat (limited to 'Data/Libraries/Penlight/tests/test-class2.lua')
-rw-r--r-- | Data/Libraries/Penlight/tests/test-class2.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Data/Libraries/Penlight/tests/test-class2.lua b/Data/Libraries/Penlight/tests/test-class2.lua new file mode 100644 index 0000000..b463b6e --- /dev/null +++ b/Data/Libraries/Penlight/tests/test-class2.lua @@ -0,0 +1,28 @@ +-- animal.lua +require 'pl.app'.require_here 'lua' + +local test = require 'pl.test' +local asserteq = test.asserteq + +local A = require 'animal' + +local fido, felix, leo +fido = A.Dog('Fido') +felix = A.Cat('Felix','Tabby') +leo = A.Lion('Leo','African') + +asserteq(fido:speak(),'bark') +asserteq(felix:speak(),'meow') +asserteq(leo:speak(),'roar') + +asserteq(tostring(leo),'Leo: roar') + +test.assertraise(function() leo:circus_act() end, "no such method circus_act") + +asserteq(leo:is_a(A.Animal),true) +asserteq(leo:is_a(A.Dog),false) +asserteq(leo:is_a(A.Cat),true) + +asserteq(A.Dog:class_of(leo),false) +asserteq(A.Cat:class_of(leo),true) +asserteq(A.Lion:class_of(leo),true) |