/**
  * @param array $configuration
  * @return WorkflowDefinition
  */
 public function buildFromRawConfiguration(array $configuration)
 {
     $configuration = $this->handler->handle($configuration);
     $configuration = $this->configuration->processConfiguration($configuration);
     $this->assertConfigurationOptions($configuration, array('name'));
     $name = $this->getConfigurationOption($configuration, 'name');
     return $this->configurationBuilder->buildOneFromConfiguration($name, $configuration);
 }
 public function testProcessConfiguration()
 {
     $workflowConfiguration = new WorkflowConfiguration();
     $inputConfiguration = $this->getInputConfiguration();
     $expectedConfiguration = $this->getExpectedConfiguration();
     foreach ($inputConfiguration as $name => $configuration) {
         $this->assertArrayHasKey($name, $expectedConfiguration);
         $actualConfiguration = $workflowConfiguration->processConfiguration($configuration);
         $this->assertEquals($expectedConfiguration[$name], $actualConfiguration);
     }
 }