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.");
 }
Example #2
0
 /**
  * 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);
 }