Classi per la configurazione upload
Cristiano Magro
2018-01-16 ee1a7b42cf449b82c8f5dc03e6a53f4b94bcc0cc
tests/SetupUploadTest.php
@@ -1,19 +1,43 @@
<?php
require 'bootstrap.php';
/**
 * Description of FbResponseTest
 * Implementazione dei test per la classe SetupUpload
 *
 * @author Cristiano Magro
 */
class SetupUploadTest extends PHPUnit_Framework_TestCase {
    public static function setUpBeforeClass() {
    /**
     *  @var $object SetupUpload
     */
    protected $object;
    /**
     * Set up fixture, inizializzazione dei test.
     * Eseguito prima di ogni test
     */
    protected function setUp() {
        $this->object = SetupUpload::create();
    }
    /**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     */
    protected function tearDown() {
    }
    public static function setUpBeforeClass() {
    }
    /**
     * Conversione di una stringa nel corrispondente valore di byte
     * @since 0.3.0
     */
    public function test_str2Bytes() {
        $this->assertEquals('1', SetupUpload::str2Bytes('1'));
@@ -24,24 +48,114 @@
        $this->assertEquals('1024', SetupUpload::str2Bytes('1 Kb'));
        $this->assertEquals('1024', SetupUpload::str2Bytes('1 KB'));
        $this->assertEquals('1024', SetupUpload::str2Bytes('1 kb'));
        $this->assertEquals('2048', SetupUpload::str2Bytes('2 Kb'));
        $this->assertEquals('1024', SetupUpload::str2Bytes('1 KB'));
        $this->assertEquals('2048', SetupUpload::str2Bytes('2           Kb'));
        $this->assertEquals('1048576', SetupUpload::str2Bytes('1 mB'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 B'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 kB'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 mB'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 GB'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 TB'));
        $this->assertEquals('0', SetupUpload::str2Bytes('0 XB'));
    }
    /**
     * Conversione di una stringa nel corrispondente valore di byte, stringhe
     * non convertibili devono andare in errore
     * @since 0.3.1
     * @expectedException Upload_Exc_Error
     * @dataProvider getBytesStringNotValid
     */
    public function test_str2BytesNonValido($byteString) {
        SetupUpload::str2Bytes($byteString);
    }
    public function getBytesStringNotValid() {
        return array(
            array(''),
            array('b'),
            array('1 k'),
            array('1 a'),
        );
    }
    /**
     * La coda non inizializzata prevede un numero minimo di files
     * @since 0.3.1
     */
    public function testDefaultValue() {
        $this->assertEquals(1, $this->object->getNumMaxFiles());
    }
    /**
     * Gestione di valori non adeguati
     * @since 0.3.1
     * @expectedException Upload_Exc_Error
     * @dataProvider getNumMaxFilesException
     */
    public function testNotValidNumMaxFilesGetException($num) {
        $this->object->setNumMaxFiles($num);
    }
    public function getNumMaxFilesException() {
        return array(
            array(''),
            array(0),
            array(-10),
            array('a'),
        );
    }
    /**
     * Caselle della coda valide
     * @since 0.3.1
     * @dataProvider getSomeMaxFiles
     */
    public function testSomeValidMaxFiles($num) {
        $this->object->setNumMaxFiles($num);
        $this->assertEquals($num, $this->object->getNumMaxFiles());
    }
    public function getSomeMaxFiles() {
        return array(
            array(2),
            array(020),
            array(100),
            array(10000),
        );
    }
    /**
     * Impostazioni delle dimensioni massime del totale caricabile
     * @since 0.3.1
     */
    public function testSetSizeMaxFilesByte() {
        $this->object->setSizeMaxFilesByte(100);
        $this->assertEquals(100, $this->object->getSizeMaxFilesByte());
        $this->object->setSizeMaxFilesByte('200');
        $this->assertEquals(200, $this->object->getSizeMaxFilesByte());
        $this->object->setSizeMaxFilesByte('3 kb');
        $this->assertEquals(1024 * 3, $this->object->getSizeMaxFilesByte());
    }
    /**
     * Impostazioni delle dimensioni massime di un file
     * @since 0.3.1
     */
    public function testSetSizeLimitFile() {
        $this->object->setSizeLimitFile(100);
        $this->assertEquals(100, $this->object->getSizeLimitFile());
        $this->object->setSizeLimitFile('200');
        $this->assertEquals(200, $this->object->getSizeLimitFile());
        $this->object->setSizeLimitFile('3kb');
        $this->assertEquals(1024 * 3, $this->object->getSizeLimitFile());
    }
}