| var abstract_inherit = require("abstract_inherit"); |
| |
| // Shouldn't be able to instantiate any of these classes |
| // since none of them implements the pure virtual function |
| // declared in the base class (Foo). |
| var Foo = abstract_inherit.Foo; |
| var Bar = abstract_inherit.Bar; |
| var Spam = abstract_inherit.Spam; |
| |
| var caughtException = false; |
| try { |
| new Foo(); |
| } catch (err) { |
| caughtException = true; |
| } |
| if (!caughtException) { |
| throw new Error("Foo should be instantiated as it is abstract"); |
| } |
| |
| caughtException = false; |
| try { |
| new Bar(); |
| } catch (err) { |
| caughtException = true; |
| } |
| |
| if (!caughtException) { |
| throw new Error("Bar should be instantiated as it is abstract"); |
| } |
| |
| caughtException = false; |
| try { |
| new Spam(); |
| } catch (err) { |
| caughtException = true; |
| } |
| |
| if (!caughtException) { |
| throw new Error("Spam should be instantiated as it is abstract"); |
| } |