Sfoglia il codice sorgente

Add the first unit test

Add phpunit configuration to run tests and add the first running test to validate the configuration
Alexis Degrugillier 11 anni fa
parent
commit
b17cdadf15
3 ha cambiato i file con 52 aggiunte e 0 eliminazioni
  1. 32 0
      tests/app/Models/CategoryTest.php
  2. 7 0
      tests/bootstrap.php
  3. 13 0
      tests/phpunit.xml

+ 32 - 0
tests/app/Models/CategoryTest.php

@@ -0,0 +1,32 @@
+<?php
+
+class FreshRSS_CategoryTest extends \PHPUnit_Framework_TestCase {
+
+	public function test__construct_whenNoParameters_createsObjectWithDefaultValues() {
+		$category = new FreshRSS_Category();
+		$this->assertEquals(0, $category->id());
+		$this->assertEquals('', $category->name());
+	}
+
+	/**
+	 * @param string $input
+	 * @param string $expected
+	 * @dataProvider provideValidNames
+	 */
+	public function test_name_whenValidValue_storesModifiedValue($input, $expected) {
+		$category = new FreshRSS_Category($input);
+		$this->assertEquals($expected, $category->name());
+	}
+
+	public function provideValidNames() {
+		return array(
+		    array('', ''),
+		    array('this string does not need trimming', 'this string does not need trimming'),
+		    array('  this string needs trimming on left', 'this string needs trimming on left'),
+		    array('this string needs trimming on right  ', 'this string needs trimming on right'),
+		    array('  this string needs trimming on both ends  ', 'this string needs trimming on both ends'),
+		    array(str_repeat('This string needs to be shortened because its length is way too long. ', 4), str_repeat('This string needs to be shortened because its length is way too long. ', 3) . 'This string needs to be shortened because its'),
+		);
+	}
+
+}

+ 7 - 0
tests/bootstrap.php

@@ -0,0 +1,7 @@
+<?php
+
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+
+require('../constants.php');
+require(LIB_PATH . '/lib_rss.php');	//Includes class autoloader

+ 13 - 0
tests/phpunit.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="bootstrap.php">
+	<filter>
+		<whitelist>
+			<directory suffix=".php">../app</directory>
+		</whitelist>
+	</filter>
+	<testsuites>
+		<testsuite name="FreshRSS">
+			<directory>app</directory>
+		</testsuite>
+	</testsuites>
+</phpunit>