Sha256: de2c1b2c364953ca1c91b3e004c0a5b1ceac776e14988c4e9b74513cbaa0d496

Contents?: true

Size: 1.75 KB

Versions: 240

Compression:

Stored size: 1.75 KB

Contents

<?php

require_once "robot-name.php";

class RobotTest extends PHPUnit\Framework\TestCase
{
    /** @var Robot $robot */
    protected $robot = null;

    public function setUp()
    {
        $this->robot = new Robot();
    }

    public function testHasName()
    {
        $this->assertRegExp('/^[a-z]{2}\d{3}$/i', $this->robot->getName());
    }

    public function testNameSticks()
    {
        $this->markTestSkipped();
        $old = $this->robot->getName();

        $this->assertSame($this->robot->getName(), $old);
    }

    public function testDifferentRobotsHaveDifferentNames()
    {
        $this->markTestSkipped();
        $other_bot = new Robot();

        $this->assertNotSame($other_bot->getName(), $this->robot->getName());

        unset($other_bot);
    }

    public function testresetName()
    {
        $this->markTestSkipped();
        $name1 = $this->robot->getName();

        $this->robot->reset();

        $name2 = $this->robot->getName();

        $this->assertNotSame($name1, $name2);

        $this->assertRegExp('/\w{2}\d{3}/', $name2);
    }
  
    public function testNameArentRecycled()
    {
        $names = [];

        for ($i = 0; $i < 10000; $i++) {
            $name = $this->robot->getName();
            $this->assertArrayNotHasKey($name, $names, sprintf('Name %s reissued after Reset.', $name));
            $names[$name] = true;
            $this->robot->reset();
        }
    }

    // This test is optional.
    public function testNameUniquenessManyRobots()
    {
        $names = [];

        for ($i = 0; $i < 10000; $i++) {
            $name = (new Robot())->getName();
            $this->assertArrayNotHasKey($name, $names, sprintf('Name %s reissued after %d robots', $name, $i));
            $names[$name] = true;
        }
    }
}

Version data entries

240 entries across 240 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.179 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.178 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.177 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.176 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.175 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.174 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.173 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.172 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.171 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.170 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.169 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.167 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.166 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.165 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.164 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.163 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.162 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.161 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.2.1.160 tracks/php/exercises/robot-name/robot-name_test.php