when($result = new SUT('foo')) ->then ->object($result) ->isInstanceOf('Hoa\Event\Bucket') ->string($result->getData()) ->isEqualTo('foo'); } public function case_send() { $self = $this; $this ->given( $eventId = 'hoa://Event/Test', $source = new \Mock\Hoa\Event\Source(), LUT::register($eventId, $source), $bucket = new SUT('foo'), LUT::getEvent($eventId)->attach( function (SUT $receivedBucket) use ($self, $bucket, &$called) { $called = true; $self ->object($receivedBucket) ->isIdenticalTo($bucket); } ) ) ->when($result = $bucket->send($eventId, $source)) ->then ->variable($result) ->isNull() ->boolean($called) ->isTrue(); } public function case_set_source() { $this ->given( $bucket = new SUT(), $sourceA = new \Mock\Hoa\Event\Source() ) ->when($result = $bucket->setSource($sourceA)) ->then ->variable($result) ->isNull() ->object($bucket->getSource()) ->isIdenticalTo($sourceA) ->given($sourceB = new \Mock\Hoa\Event\Source()) ->when($result = $bucket->setSource($sourceB)) ->then ->object($result) ->isIdenticalTo($sourceA) ->object($bucket->getSource()) ->isIdenticalTo($sourceB); } public function case_set_data() { $this ->given( $bucket = new SUT(), $datumA = 'foo' ) ->when($result = $bucket->setData($datumA)) ->then ->variable($result) ->isNull() ->string($bucket->getData()) ->isEqualTo($datumA) ->given($datumB = 'bar') ->when($result = $bucket->setData($datumB)) ->then ->string($result) ->isEqualTo($datumA) ->string($bucket->getData()) ->isEqualTo($datumB); } }