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 Address $address */ public function markAddressSynced(Address $address) { if (!$this->isAddressRemoved($address)) { $this->stateManager->removeState($address, 'syncState', Address::SYNC_TO_MAGENTO); } }