Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
9 / 9
CRAP
100.00% covered (success)
100.00%
18 / 18
Tabs
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
9 / 9
12
100.00% covered (success)
100.00%
18 / 18
 getTabs
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 addTab
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 getTab
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 hasTab
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
 rewind
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 current
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 key
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 next
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 valid
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
<?php
declare(strict_types=1);
namespace Korobochkin\WPKit\Pages\Tabs;
/**
 * Class Tabs
 */
class Tabs implements TabsInterface
{
    /**
     * @var TabInterface[]
     */
    protected $tabs = array();
    /**
     * @inheritdoc
     */
    public function getTabs()
    {
        return $this->tabs;
    }
    /**
     * @inheritdoc
     */
    public function addTab(TabInterface $tab)
    {
        if (empty($tab->getName())) {
            throw new \LogicException();
        }
        $this->tabs[$tab->getName()] = $tab;
        return $this;
    }
    /**
     * @inheritdoc
     */
    public function getTab($name)
    {
        if ($this->hasTab($name)) {
            return $this->tabs[$name];
        }
        throw new \InvalidArgumentException();
    }
    /**
     * @inheritdoc
     */
    public function hasTab($name)
    {
        if (isset($this->tabs[$name])) {
            return true;
        }
        return false;
    }
    /**
     * @inheritdoc
     */
    public function rewind()
    {
        reset($this->tabs);
    }
    /**
     * @inheritdoc
     */
    public function current()
    {
        return current($this->tabs);
    }
    /**
     * @inheritdoc
     */
    public function key()
    {
        return key($this->tabs);
    }
    /**
     * @inheritdoc
     */
    public function next()
    {
        next($this->tabs);
    }
    /**
     * @inheritdoc
     */
    public function valid()
    {
        return isset($this->tabs[$this->key()]);
    }
}