protected function createSourceCollection()
{
$sourceCollection = new StateCollection();
$stateNew = new State('new');
$stateNew['test'] = true;
$stateNew[self::FLAG_FOR_TEST] = self::FLAG_FOR_TEST_VALUE;
$sourceCollection->addState($stateNew);
$stateInProcess = new State('in progress');
$sourceCollection->addState($stateInProcess);
$stateDone = new State('done');
$sourceCollection->addState($stateDone);
$stateNew->addTransition(new Transition($stateInProcess, 'start'));
$callback = new \Metabor\Callback\Callback($this);
$observer = new Callback($callback);
$event = $stateNew->getEvent('start');
$event->attach($observer);
$event['event flag'] = 'has command';
$event[self::FLAG_FOR_TEST] = self::FLAG_FOR_TEST_VALUE;
$stateInProcess->addTransition(new Transition($stateDone, null, new Tautology('is finished')));
return $sourceCollection;
}