forwarder
Version:
Forwarding of messages to different objects (mostly properties of the receiver)
39 lines (29 loc) • 1 kB
text/coffeescript
{ expect } = require "chai"
{ Forwarder } = require "../src/forwarder"
_ = require "underscore"
class F extends Forwarder
constructor: ->
= "no name so far"
'split', to: "name"
'seperate', to: 'name', as: 'split'
'splitByOes', to: 'name', as: 'split', with: ['o']
'tokenize', to: 'designation', as: 'split', with: [' ']
designation: ->
describe "forwarder", ->
obj = new F()
it "forwards", ->
expect( obj.split ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "forwards with translations", ->
expect( obj.seperate ' ' ).to.deep.equal ['no', 'name', 'so', 'far']
it "raises an error for unforwarded messages", ->
expect(
-> obj.undefinedMethod()
).to.throw TypeError
it "sets arguments", ->
expect(
obj.splitByOes()
).to.deep.equal ['n', ' name s', ' far']
it 'forwards to methods too', ->
expect(
obj.tokenize()
).to.deep.equal ['no', 'name', 'so', 'far']