/** * Test implementation of interface for work with custom attributes. */ public function testCustomAttributes() { $this->assertEquals([], $this->model->getCustomAttributes(), "Empty array is expected as a result of getCustomAttributes() when custom attributes are not set."); $this->assertEquals(null, $this->model->getCustomAttribute('not_existing_custom_attribute'), "Null is expected as a result of getCustomAttribute(\$code) when custom attribute is not set."); $attributesAsArray = ['attribute1' => true, 'attribute2' => 'Attribute Value', 'attribute3' => 333]; $this->addCustomAttributesToModel($attributesAsArray, $this->model); $this->assertEquals([], $this->model->getCustomAttributes(), 'Custom attributes retrieved from the model using getCustomAttributes() are invalid.'); }
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."); }