aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/AutonameTest.php
blob: b79a600c5dc6368d15fbba14666ff1741d32f74c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
/**
 * This file contains tests for the autoname function
 *
 * @package test.util
 */

use PHPUnit\Framework\TestCase;

/**
 * TestCase for the autoname function
 *
 * @author  Alexander Kampmann
 * @package test.util
 */
class AutonameTest extends TestCase {
	/**
	 * Autonames should be random, even length
	 */
	public function testAutonameEven() {
		$autoname1=autoname(10);
		$autoname2=autoname(10);

		$this->assertNotEquals($autoname1, $autoname2);
	}

	/**
	 * Autonames should be random, odd length
	 */
	public function testAutonameOdd() {
		$autoname1=autoname(9);
		$autoname2=autoname(9);

		$this->assertNotEquals($autoname1, $autoname2);
	}

	/**
	 * Try to fail autonames
	 */
	public function testAutonameNoLength() {
		$autoname1=autoname(0);
		$this->assertEquals(0, strlen($autoname1));
	}

	/**
	 * Try to fail it with invalid input
	 *
	 * TODO: What's corect behaviour here? An exception?
	 */
	public function testAutonameNegativeLength() {
		$autoname1=autoname(-23);
		$this->assertEquals(0, strlen($autoname1));
	}

	// 	public function testAutonameMaxLength() {
	// 		$autoname2=autoname(PHP_INT_MAX);
	// 		$this->assertEquals(PHP_INT_MAX, strlen($autoname2));
	// 	}

	/**
	 * Test with a length, that may be too short
	 * length is maximum - autoname can return something shorter.
	 */
	public function testAutonameLength1() {
		$autoname1=autoname(1);
		$test = ((strlen($autoname1) < 2) ? 1 : 0);
		$this->assertEquals(1, $test);

		$autoname2=autoname(1);
		$test = ((strlen($autoname2) < 2) ? 1 : 0);
		$this->assertEquals(1, $test);

		// The following test is problematic, with only 26 possibilities
		// generating the same thing twice happens often aka
		// birthday paradox
//		$this->assertFalse($autoname1==$autoname2);
	}
}