public function testLoaderArray()
{
//scenario: test loader supported stuff
$loader = new LoaderArray();
$this->assertContains('LoaderArray', $loader->toString());
$this->assertContains('LoaderArray', $loader . '', '__toString');
$this->assertEquals(0, $loader->count());
//scenario: configure loader
$transitions = array();
$s1 = new State("1");
$s2 = new State("2");
$s3 = new State("3");
$transitions[] = new Transition($s1, $s2);
$transitions[] = new Transition($s2, $s3);
$loader = new LoaderArray($transitions);
$this->assertEquals(count($transitions), $loader->count());
//scenario: configure loader with bad object types
$transitions = array();
$transitions[] = new Transition($s2, $s3);
$transitions[] = new \stdClass();
try {
$loader = new LoaderArray($transitions);
$this->fail('fails cause not the right type');
} catch (Exception $e) {
$this->assertEquals(Exception::BAD_LOADERDATA, $e->getCode());
}
}