CentralDirectoryHeaderTest   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 162
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 162
rs 10
c 0
b 0
f 0
wmc 1
lcom 0
cbo 2

1 Method

Rating   Name   Duplication   Size   Complexity  
B testImmutability() 0 159 1
1
<?php
2
3
namespace morgue\zip;
4
5
use PHPUnit\Framework\TestCase;
6
7
final class CentralDirectoryHeaderTest extends TestCase
8
{
9
    public function testImmutability()
10
    {
11
        $number = 12345;
12
        $old = new CentralDirectoryHeader(0,0,0,0,0,0,0,0,0,0,0,0,0);
13
14
        $new = $old->setVersionMadeBy($number);
15
        $this->assertNotSame($old, $new);
16
        $this->assertNotSame($old->getVersionMadeBy(), $new->getVersionMadeBy());
17
        $this->assertSame($number, $new->getVersionMadeBy());
18
        $old = $new;
19
        $number += 123;
20
21
        $new = $old->setVersionNeededToExtract($number);
22
        $this->assertNotSame($old, $new);
23
        $this->assertNotSame($old->getVersionNeededToExtract(), $new->getVersionNeededToExtract());
24
        $this->assertSame($number, $new->getVersionNeededToExtract());
25
        $old = $new;
26
        $number += 123;
27
28
        $new = $old->setGeneralPurposeBitFlags($number);
29
        $this->assertNotSame($old, $new);
30
        $this->assertNotSame($old->getGeneralPurposeBitFlags(), $new->getGeneralPurposeBitFlags());
31
        $this->assertSame($number, $new->getGeneralPurposeBitFlags());
32
        $old = $new;
33
        $number += 123;
34
35
        $new = $old->setCompressionMethod($number);
36
        $this->assertNotSame($old, $new);
37
        $this->assertNotSame($old->getCompressionMethod(), $new->getCompressionMethod());
38
        $this->assertSame($number, $new->getCompressionMethod());
39
        $old = $new;
40
        $number += 123;
41
42
        $new = $old->setLastModificationFileTime($number);
43
        $this->assertNotSame($old, $new);
44
        $this->assertNotSame($old->getLastModificationFileTime(), $new->getLastModificationFileTime());
45
        $this->assertSame($number, $new->getLastModificationFileTime());
46
        $old = $new;
47
        $number += 123;
48
49
        $new = $old->setLastModificationFileDate($number);
50
        $this->assertNotSame($old, $new);
51
        $this->assertNotSame($old->getLastModificationFileDate(), $new->getLastModificationFileDate());
52
        $this->assertSame($number, $new->getLastModificationFileDate());
53
        $old = $new;
54
        $number += 123;
55
56
        $new = $old->setCrc32($number);
57
        $this->assertNotSame($old, $new);
58
        $this->assertNotSame($old->getCrc32(), $new->getCrc32());
59
        $this->assertSame($number, $new->getCrc32());
60
        $old = $new;
61
        $number += 123;
62
63
        $new = $old->setCompressedSize($number);
64
        $this->assertNotSame($old, $new);
65
        $this->assertNotSame($old->getCompressedSize(), $new->getCompressedSize());
66
        $this->assertSame($number, $new->getCompressedSize());
67
        $old = $new;
68
        $number += 123;
69
70
        $new = $old->setUncompressedSize($number);
71
        $this->assertNotSame($old, $new);
72
        $this->assertNotSame($old->getUncompressedSize(), $new->getUncompressedSize());
73
        $this->assertSame($number, $new->getUncompressedSize());
74
        $old = $new;
75
        $number += 123;
76
77
        $new = $old->setDiskNumberStart($number);
78
        $this->assertNotSame($old, $new);
79
        $this->assertNotSame($old->getDiskNumberStart(), $new->getDiskNumberStart());
80
        $this->assertSame($number, $new->getDiskNumberStart());
81
        $old = $new;
82
        $number += 123;
83
84
        $new = $old->setInternalFileAttributes($number);
85
        $this->assertNotSame($old, $new);
86
        $this->assertNotSame($old->getInternalFileAttributes(), $new->getInternalFileAttributes());
87
        $this->assertSame($number, $new->getInternalFileAttributes());
88
        $old = $new;
89
        $number += 123;
90
91
        $new = $old->setExternalFileAttributes($number);
92
        $this->assertNotSame($old, $new);
93
        $this->assertNotSame($old->getExternalFileAttributes(), $new->getExternalFileAttributes());
94
        $this->assertSame($number, $new->getExternalFileAttributes());
95
        $old = $new;
96
        $number += 123;
97
98
        $new = $old->setRelativeOffsetOfLocalHeader($number);
99
        $this->assertNotSame($old, $new);
100
        $this->assertNotSame($old->getRelativeOffsetOfLocalHeader(), $new->getRelativeOffsetOfLocalHeader());
101
        $this->assertSame($number, $new->getRelativeOffsetOfLocalHeader());
102
        $old = $new;
103
        $number += 123;
104
105
        $new = $old->setEncodingHost($number);
106
        $this->assertNotSame($old, $new);
107
        $this->assertNotSame($old->getEncodingHost(), $new->getEncodingHost());
108
        $this->assertSame($number, $new->getEncodingHost());
109
        $old = $new;
110
        $number += 123;
111
112
        $new = $old->setEncodingVersion($number);
113
        $this->assertNotSame($old, $new);
114
        $this->assertNotSame($old->getEncodingVersion(), $new->getEncodingVersion());
115
        $this->assertSame($number, $new->getEncodingVersion());
116
        $old = $new;
117
        $number += 123;
118
119
        $new = $old->setRequiredHost($number);
120
        $this->assertNotSame($old, $new);
121
        $this->assertNotSame($old->getRequiredHost(), $new->getRequiredHost());
122
        $this->assertSame($number, $new->getRequiredHost());
123
        $old = $new;
124
        $number += 123;
125
126
        $new = $old->setRequiredVersion($number);
127
        $this->assertNotSame($old, $new);
128
        $this->assertNotSame($old->getRequiredVersion(), $new->getRequiredVersion());
129
        $this->assertSame($number, $new->getRequiredVersion());
130
        $old = $new;
131
        $number += 123;
132
133
        $new = $old->setDosExternalAttributes($number);
134
        $this->assertNotSame($old, $new);
135
        $this->assertNotSame($old->getDosExternalAttributes(), $new->getDosExternalAttributes());
136
        $this->assertSame($number, $new->getDosExternalAttributes());
137
        $old = $new;
138
        $number += 123;
139
140
        $new = $old->setUnixExternalAttributes($number);
141
        $this->assertNotSame($old, $new);
142
        $this->assertNotSame($old->getUnixExternalAttributes(), $new->getUnixExternalAttributes());
143
        $this->assertSame($number, $new->getUnixExternalAttributes());
144
145
        $fileName = "new name";
146
        $new = $old->setFileName($fileName);
147
        $this->assertNotSame($old, $new);
148
        $this->assertNotSame($old->getFileName(), $new->getFileName());
149
        $this->assertSame($fileName, $new->getFileName());
150
        $this->assertSame(\strlen($fileName), $new->getFileNameLength());
151
        $old = $new;
152
153
        $extraField = "abcdefghij";
154
        $new = $old->setExtraField($extraField);
155
        $this->assertNotSame($old, $new);
156
        $this->assertNotSame($old->getExtraField(), $new->getextraField());
157
        $this->assertSame($extraField, $new->getExtraField());
158
        $this->assertSame(\strlen($extraField), $new->getExtraFieldLength());
159
        $old = $new;
160
161
        $fileComment = "a comment";
162
        $new = $old->setFileComment($fileComment);
163
        $this->assertNotSame($old, $new);
164
        $this->assertNotSame($old->getFileComment(), $new->getFileComment());
165
        $this->assertSame($fileComment, $new->getFileComment());
166
        $this->assertSame(\strlen($fileComment), $new->getFileCommentLength());
167
    }
168
}
169