Sha256: 386be4668fa591558af7e71ee3f079c227f2f47d0413ae1537a69ac4ab65f59a

Contents?: true

Size: 1.72 KB

Versions: 67

Compression:

Stored size: 1.72 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();
        }
    }

    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

67 entries across 67 versions & 1 rubygems

Version Path
trackler-2.0.6.0 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.18 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.17 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.16 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.15 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.14 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.13 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.12 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.11 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.10 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.9 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.8 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.7 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.6 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.5 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.4 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.3 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.2 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.1 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.5.0 tracks/php/exercises/robot-name/robot-name_test.php