/**
  * @covers \Magento\Catalog\Model\Product::getVisibleInCatalogStatuses
  * @covers \Magento\Catalog\Model\Product::getVisibleStatuses
  * @covers \Magento\Catalog\Model\Product::isVisibleInCatalog
  * @covers \Magento\Catalog\Model\Product::getVisibleInSiteVisibilities
  * @covers \Magento\Catalog\Model\Product::isVisibleInSiteVisibility
  */
 public function testVisibilityApi()
 {
     $this->assertEquals([\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED], $this->_model->getVisibleInCatalogStatuses());
     $this->assertEquals([\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED], $this->_model->getVisibleStatuses());
     $this->_model->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED);
     $this->assertFalse($this->_model->isVisibleInCatalog());
     $this->_model->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED);
     $this->assertTrue($this->_model->isVisibleInCatalog());
     $this->assertEquals([\Magento\Catalog\Model\Product\Visibility::VISIBILITY_IN_SEARCH, \Magento\Catalog\Model\Product\Visibility::VISIBILITY_IN_CATALOG, \Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH], $this->_model->getVisibleInSiteVisibilities());
     $this->assertFalse($this->_model->isVisibleInSiteVisibility());
     $this->_model->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_IN_SEARCH);
     $this->assertTrue($this->_model->isVisibleInSiteVisibility());
     $this->_model->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_IN_CATALOG);
     $this->assertTrue($this->_model->isVisibleInSiteVisibility());
     $this->_model->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH);
     $this->assertTrue($this->_model->isVisibleInSiteVisibility());
 }
 /**
  * {@inheritdoc}
  */
 public function getVisibleInCatalogStatuses()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getVisibleInCatalogStatuses');
     if (!$pluginInfo) {
         return parent::getVisibleInCatalogStatuses();
     } else {
         return $this->___callPlugins('getVisibleInCatalogStatuses', func_get_args(), $pluginInfo);
     }
 }