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' => '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; }