suite "Unbinding", ()->
	test "Binding single prop to multiple ObjectProps and then calling .unBind() should unbind all", ()->
		dispatcher = 'prop':'value1'
		objectA.prop1 = objectB.prop1 = objectC.prop1 = null

		binding = SimplyBind('prop').of(dispatcher)
			.to('multi:prop1').of([objectA, objectB, objectC])

		expect(objectA.prop1).to.equal 'value1'
		expect(objectB.prop1).to.equal 'value1'
		expect(objectC.prop1).to.equal 'value1'

		binding.unBind()

		dispatcher.prop = 'value2'
		expect(objectA.prop1).to.equal 'value1'
		expect(objectB.prop1).to.equal 'value1'
		expect(objectC.prop1).to.equal 'value1'

		restartSandbox()
	


	test "Binding multiple ObjectProps to a single prop and then calling .unBind() should unbind all props from that single prop", ()->
		receiver = 'prop':null
		objectA.prop1 = objectB.prop1 = objectC.prop1 = 'value1'

		binding = SimplyBind('multi:prop1').of([objectA, objectB, objectC])
			.to('prop').of(receiver)

		expect(receiver.prop).to.equal 'value1'
		expect(objectA.prop1).to.equal 'value1'
		expect(objectB.prop1).to.equal 'value1'
		expect(objectC.prop1).to.equal 'value1'

		binding.unBind()
		
		objectA.prop1 = 'value2'
		expect(receiver.prop).to.equal 'value1'
		expect(objectA.prop1).to.equal 'value2'
		expect(objectB.prop1).to.equal 'value1'
		expect(objectC.prop1).to.equal 'value1'

		objectB.prop1 = 'value3'
		expect(receiver.prop).to.equal 'value1'
		expect(objectA.prop1).to.equal 'value2'
		expect(objectB.prop1).to.equal 'value3'
		expect(objectC.prop1).to.equal 'value1'

		objectC.prop1 = 'value4'
		expect(receiver.prop).to.equal 'value1'
		expect(objectA.prop1).to.equal 'value2'
		expect(objectB.prop1).to.equal 'value3'
		expect(objectC.prop1).to.equal 'value4'

		restartSandbox()
