public function testCustomAttributesWithNonEmptyCustomAttributes() { $customAttributeCode = 'attribute_code'; $customAttributeValue = 'attribute_value'; $this->model->expects($this->any())->method('getCustomAttributesCodes')->willReturn([$customAttributeCode]); $this->assertEquals([], $this->model->getCustomAttributes(), "Empty array is expected as a result of getCustomAttributes() when custom attributes are not set."); $this->attributeValueFactoryMock->expects($this->once())->method('create')->willReturn($this->customAttribute); $this->customAttribute->setAttributeCode($customAttributeCode)->setValue($customAttributeValue); $this->model->setData($customAttributeCode, $customAttributeValue); $this->assertEquals([$this->customAttribute], $this->model->getCustomAttributes(), "One custom attribute expected"); $this->assertNotNull($this->model->getCustomAttribute($customAttributeCode), 'customer attribute expected'); $this->assertEquals($customAttributeValue, $this->model->getCustomAttribute($customAttributeCode)->getValue(), "Custom attribute value is incorrect"); //unset the data $this->model->unsetData($customAttributeCode); $this->assertEquals([], $this->model->getCustomAttributes(), "Empty array is expected as a result of getCustomAttributes() when custom attributes are not set."); }
/** * Unset data from the object. * * The $key can be a string only. Array will be ignored. * * $isChanged will specify if the object needs to be saved after an update. * * @param string $key * @return $this */ public function unsetData($key = null) { if ($key !== null && $this->isLockedAttribute($key) || $this->isReadonly()) { return $this; } return parent::unsetData($key); }