public function testToArray() { $os = new Os(); $this->assertEquals([], $os->toArray()); $os->set(['name' => '']); $this->assertEquals([], $os->toArray()); $os->reset(['name' => 'iOS', 'version' => new Version(['value' => '8.0'])]); $this->assertEquals(['name' => 'iOS', 'version' => '8.0'], $os->toArray()); $os->reset(['name' => 'iOS', 'alias' => 'iPhone OS', 'version' => new Version(['value' => '3.0'])]); $this->assertEquals(['name' => 'iOS', 'alias' => 'iPhone OS', 'version' => '3.0'], $os->toArray()); $os->reset(['name' => 'OS X', 'version' => new Version(['value' => '10.11', 'nickname' => 'El Capitan'])]); $this->assertEquals(['name' => 'OS X', 'version' => ['value' => '10.11', 'nickname' => 'El Capitan']], $os->toArray()); $os->reset(['name' => 'Windows', 'version' => new Version(['value' => '5.1', 'alias' => 'XP'])]); $this->assertEquals(['name' => 'Windows', 'version' => ['value' => '5.1', 'alias' => 'XP']], $os->toArray()); $os->reset(['name' => 'Windows Phone', 'alias' => 'Windows', 'edition' => 'Mobile', 'version' => new Version(['value' => '10.0', 'alias' => '10'])]); $this->assertEquals(['name' => 'Windows Phone', 'alias' => 'Windows', 'edition' => 'Mobile', 'version' => ['value' => '10.0', 'alias' => '10']], $os->toArray()); $os->reset(['name' => 'FireOS', 'family' => new Family(['name' => 'Android'])]); $this->assertEquals(['name' => 'FireOS', 'family' => 'Android'], $os->toArray()); }
/** * Get an array of all defined properties * * @return array */ public function toArray() { $result = ['browser' => $this->browser->toArray(), 'engine' => $this->engine->toArray(), 'os' => $this->os->toArray(), 'device' => $this->device->toArray()]; if (!count($result['browser'])) { unset($result['browser']); } if (!count($result['engine'])) { unset($result['engine']); } if (!count($result['os'])) { unset($result['os']); } if (!count($result['device'])) { unset($result['device']); } if ($this->camouflage) { $result['camouflage'] = true; } return $result; }
/** * * @param Model\OperatingSystem $os * @param \WhichBrowser\Model\Os $osRaw */ private function hydrateOperatingSystem(Model\OperatingSystem $os, \WhichBrowser\Model\Os $osRaw) { $os->setName($this->getRealResult($osRaw->getName())); $os->getVersion()->setComplete($this->getRealResult($osRaw->getVersion())); }