Sha256: b51d6c4350aeb9dbfc3527ef67501864a0ddda1cf1a7ddb87d8e5ff2f86c9708

Contents?: true

Size: 1.72 KB

Versions: 60

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

60 entries across 60 versions & 1 rubygems

Version Path
trackler-2.1.0.0 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.55 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.54 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.53 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.52 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.51 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.50 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.49 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.48 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.47 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.46 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.45 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.44 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.43 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.42 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.41 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.40 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.39 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.38 tracks/php/exercises/robot-name/robot-name_test.php
trackler-2.0.8.37 tracks/php/exercises/robot-name/robot-name_test.php