tests/Unit/Model/DeviceTest.php
<?php namespace Tests\Unit\Model; use App\Device;use App\Http\Globals\DeviceTypes;use App\RFDevice;use Illuminate\Database\Eloquent\Model; class DeviceTest extends TestCaseWithRealDatabase{The method testHtmlDataAttributesForSpecificDeviceProperties_GivenDeviceAddedToDatabase_AttributesMatchNameAndValueOfAddedDevice() has 25 lines of code. Current threshold is set to 25. Avoid really long methods.
Line exceeds 120 characters; contains 145 characters public function testHtmlDataAttributesForSpecificDeviceProperties_GivenDeviceAddedToDatabase_AttributesMatchNameAndValueOfAddedDevice(): void { foreach ($this->deviceTypeConstants() as $specificDeviceType) { $addedDevice = $this->addDeviceToDatabase($specificDeviceType); $specificDevice = $this->addSpecificDevice($addedDevice->id, $specificDeviceType); $specificDeviceProperties = $specificDevice->getFillable(); $htmlAttributes = $addedDevice->htmlDataAttributesForSpecificDevice(); $attributeNames = []; $attributeValues = []; foreach ($htmlAttributes as $htmlAttribute) { $htmlAttributePieces = explode('=', $htmlAttribute); $htmlAttributeRawNameLength = strlen($htmlAttributePieces[0]); $htmlAttributeDataPrefix = 'data-device-';Line exceeds 120 characters; contains 128 characters $attributeName = substr($htmlAttributePieces[0], strlen($htmlAttributeDataPrefix), $htmlAttributeRawNameLength); $attributeName = str_replace('-', '_', $attributeName); array_push($attributeNames, $attributeName); array_push($attributeValues, $htmlAttributePieces[1]); } Line exceeds 120 characters; contains 148 characters $this->assertHtmlAttributesMatchSpecificDeviceProperties($specificDevice, $attributeNames, $attributeValues, $specificDeviceProperties); } } public function testSpecificDevice_GivenDeviceAddedToDatabase_AttributesMatch(): void { foreach ($this->deviceTypeConstants() as $specificDeviceType) { $addedDevice = $this->addDeviceToDatabase($specificDeviceType); $expectedSpecificDevice = $this->addSpecificDevice($addedDevice->id, $specificDeviceType); $actualSpecificDevice = $addedDevice->specificDevice(); Line exceeds 120 characters; contains 122 characters $this->assertEquals($expectedSpecificDevice->attributesToArray(), $actualSpecificDevice->attributesToArray()); } } private function addDeviceToDatabase(int $deviceType): Device { return factory(Device::class)->create([ 'user_id' => self::$faker->randomNumber(), 'device_type_id' => $deviceType ]); } Line exceeds 120 characters; contains 179 characters private function assertHtmlAttributesMatchSpecificDeviceProperties(Model $specificDevice, array $attributeNames, array $attributeValues, array $specificDeviceProperties): void { $this->assertEquals(sizeof($attributeNames), sizeof($specificDeviceProperties)); Avoid using Tests\Unit\Model\sizeof() function in for loops. for ($i = 0; $i < sizeof($attributeNames); $i++) { $this->assertEquals($specificDeviceProperties[$i], $attributeNames[$i]); $this->assertEquals($specificDevice->{$attributeNames[$i]}, $attributeValues[$i]); } } private function addSpecificDevice(int $deviceId, int $specificDeviceType): RFDevice { if ($specificDeviceType == DeviceTypes::RF_DEVICE) { $specificDevice = $this->addRFDeviceToDatabase($deviceId); } return $specificDevice; } private function addRFDeviceToDatabase(int $deviceId): RFDevice { return factory(RFDevice::class)->create([ 'device_id' => $deviceId ]); } private function deviceTypeConstants(): array {Missing class import via use statement (line '86', column '33'). $deviceTypesClass = new \ReflectionClass(DeviceTypes::class); $specificDeviceTypes = $deviceTypesClass->getConstants(); return $specificDeviceTypes; }}