public function testAddDefinitionAndGetWorkflow()
 {
     // Create a dummy definition
     $workflow = new Workflow('manager_test', 'TyHand\\WorkflowBundle\\Tests\\DummyContext');
     $stateA = new State('A');
     $workflow->addState($stateA);
     $workflow->setInitialState($stateA);
     $mockBuilder = $this->getMockBuilder('TyHand\\WorkflowBundle\\Workflow\\Builder\\WorkflowBuilder')->disableOriginalConstructor()->setMethods(array('build'))->getMock();
     $mockBuilder->expects($this->any())->method('build')->will($this->returnValue($workflow));
     $mockDefinition = $this->getMockBuilder('TyHand\\WorkflowBundle\\Workflow\\AbstractWorkflowDefinition')->setMethods(array('getName', 'getContextClass', 'build'))->getMock();
     $mockDefinition->expects($this->any())->method('getName')->will($this->returnValue('manager_test'));
     $mockDefinition->expects($this->any())->method('getContextClass')->will($this->returnValue('TyHand\\WorkflowBundle\\Tests\\DummyContext'));
     $mockDefinition->expects($this->any())->method('build')->will($this->returnValue($mockBuilder));
     // Create the new manager
     $manager = new WorkflowManager();
     $this->assertCount(0, $manager->getDefinitions());
     $manager->addWorkflowDefinition($mockDefinition);
     $this->assertCount(1, $manager->getDefinitions());
     $retrieved = $manager->getWorkflow('manager_test');
     $this->assertNotNull($retrieved);
     $this->assertEquals($retrieved, $workflow);
     $retrieved2 = $manager->getWorkflow('manager_test');
     $this->assertNotNull($retrieved2);
     $this->assertEquals($retrieved2, $retrieved);
 }