public function testFull() { $entity_id = "id"; $machine = "test machine"; $identifier = new Identifier($entity_id, $machine); $builder = new EntityBuilder(); $io = new Memory(); // all parameters $o = new Context($identifier, $builder, $io); $this->assertEquals($entity_id, $o->getEntityId()); $this->assertEquals($machine, $o->getMachine()); $this->assertNull($o->getStateMachine()); $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->assertTrue(is_string($o->toString())); $this->assertContains($entity_id, $o->toString()); $this->assertContains($machine, $o->toString()); $this->assertContains('izzum\\statemachine\\Context', $o->toString()); // even though we have a valid reader, the state machine does not exist. $this->assertEquals(State::STATE_UNKNOWN, $o->getState()); $this->assertTrue($o->setState('lala')); $this->assertEquals('lala', $o->getState()); // for coverage. $this->assertNotNull($o->getId()); $this->assertNotNull($o->getId(true)); $this->assertNotNull($o->getId(false)); $this->assertNotNull($o->getId(true, true)); $this->assertNotNull($o->getId(false, true)); // adding $machine = 'add-experiment-machine'; $context = new Context(new Identifier('add-experiment-id', $machine), $builder, $io); $sm = new StateMachine($context); $sm->addTransition(new Transition(new State('c', State::TYPE_FINAL), new State('d'), State::TYPE_NORMAL)); $sm->addTransition(new Transition(new State('a', State::TYPE_INITIAL), new State('b'))); $this->assertCount(0, $context->getPersistenceAdapter()->getEntityIds($machine)); $state = $sm->getInitialState()->getName(); $this->assertEquals('a', $state); $this->assertTrue($context->add($state)); // var_dump( Memory::get()); $this->assertCount(1, $context->getPersistenceAdapter()->getEntityIds($machine)); }