public function testStates() { $object = new \stdClass(); $object->stateField = null; $stateManager = new StateManager(); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->addState($object, 'stateField', self::STATE_REQUIRE_ADDRESS); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->addState($object, 'stateField', self::STATE_REQUIRE_INFO); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->removeState($object, 'stateField', self::STATE_REQUIRE_ADDRESS); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->removeState($object, 'stateField', self::STATE_REQUIRE_INFO); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->addState($object, 'stateField', self::STATE_REQUIRE_ADDRESS | self::STATE_REQUIRE_INFO); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->addState($object, 'stateField', self::STATE_REQUIRE_ADDRESS); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); $stateManager->removeState($object, 'stateField', self::STATE_REQUIRE_ADDRESS); $stateManager->removeState($object, 'stateField', self::STATE_REQUIRE_ADDRESS); $this->assertFalse($stateManager->isInState($object->stateField, self::STATE_REQUIRE_ADDRESS)); $this->assertTrue($stateManager->isInState($object->stateField, self::STATE_REQUIRE_INFO)); }
/** * @param Customer $entity */ public function markCustomerForSync(Customer $entity) { if (!$this->isCustomerRemoved($entity) && !$entity->isGuest()) { $this->stateManager->addState($entity, 'syncState', Customer::SYNC_TO_MAGENTO); } }