Classi per la configurazione upload
Cristiano Magro
2017-12-29 b78b45ac066d7fbac667cc64c12db9ef23ec255b
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
 
require 'bootstrap.php';
 
/**
 * Implementazione dei test per la classe SetupUpload
 *
 * @author Cristiano Magro
 */
class SetupUploadTest extends PHPUnit_Framework_TestCase {
 
    /**
     *  @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'));
        $this->assertEquals('1', SetupUpload::str2Bytes('1b'));
        $this->assertEquals('1', SetupUpload::str2Bytes('1 b'));
 
        $this->assertEquals('1024', SetupUpload::str2Bytes('1 kb'));
        $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'));
    }
 
    /**
     * 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 UploadFile_Exc
     * @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),
        );
    }
    
}