public function testFactoryDefault()
{
$entity_id = "id123";
$machine = "test-machine";
$identifier = new Identifier($entity_id, $machine);
// only mandatory parameters
$o = new Context($identifier);
$this->assertNotNull($o->toString());
$this->assertContains($entity_id, $o->getId());
$this->assertContains($machine, $o->getId());
$this->assertContains($entity_id, $o->getId(false));
$this->assertContains($machine, $o->getId(false));
$this->assertContains($entity_id, $o->getId(true));
$this->assertContains($machine, $o->getId(true));
$this->assertEquals($entity_id, $o->getEntityId());
$this->assertEquals($machine, $o->getMachine());
$this->assertNull($o->getStateMachine());
// defaulting to database readers and writers
$this->assertTrue(is_a($o->getPersistenceAdapter(), 'izzum\\statemachine\\persistence\\Memory'));
$this->assertTrue(is_a($o->getBuilder(), 'izzum\\statemachine\\EntityBuilder'));
$this->assertEquals($o->getIdentifier(), $o->getEntity());
$this->assertTrue(is_string($o->getEntityId()));
$this->assertEquals($o->getIdentifier(), $identifier);
$this->assertTrue(is_string($o->toString()));
$this->assertContains($entity_id, $o->toString());
$this->assertContains($machine, $o->toString());
$this->assertContains('izzum\\statemachine\\Context', $o->toString());
$this->assertEquals(State::STATE_UNKNOWN, $o->getState());
}