1 2 17 18 19 package org.apache.poi.poifs.storage; 20 21 import java.io.*; 22 23 import java.util.*; 24 25 import junit.framework.*; 26 27 import org.apache.poi.util.LittleEndian; 28 import org.apache.poi.util.LittleEndianConsts; 29 30 35 36 public class TestHeaderBlockWriter 37 extends TestCase 38 { 39 40 45 46 public TestHeaderBlockWriter(String name) 47 { 48 super(name); 49 } 50 51 56 57 public void testConstructors() 58 throws IOException 59 { 60 HeaderBlockWriter block = new HeaderBlockWriter(); 61 ByteArrayOutputStream output = new ByteArrayOutputStream(512); 62 63 block.writeBlocks(output); 64 byte[] copy = output.toByteArray(); 65 byte[] expected = 66 { 67 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 68 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 69 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 70 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 71 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 72 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 73 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 74 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 75 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 76 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 77 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 78 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 79 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 80 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 81 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 82 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 83 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 84 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 85 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 86 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 87 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 88 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 89 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 90 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 91 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 92 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 93 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 94 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 95 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 96 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 97 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 98 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 99 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 100 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 101 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 102 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 103 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 104 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 105 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 106 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 107 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 108 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 109 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 110 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 111 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 112 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 113 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 114 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 115 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 116 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 117 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 118 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 119 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 120 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 121 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 122 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 123 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 124 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 125 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 126 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 127 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 128 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 129 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 130 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 131 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 132 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 133 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 134 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 135 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 136 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 137 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 138 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 139 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 140 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 141 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 142 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 143 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 144 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 145 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 146 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 147 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 148 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 149 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 150 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 151 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 152 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 153 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 154 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 155 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 156 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 157 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 158 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 159 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 160 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 161 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 162 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 163 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 164 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 165 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 166 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 167 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 168 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 169 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 170 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 171 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 172 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 173 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 174 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 175 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 176 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 177 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 178 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 179 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 180 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 181 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 182 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 183 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 184 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 185 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 186 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 187 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 188 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 189 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 190 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 191 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 192 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 193 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 194 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF 195 }; 196 197 assertEquals(expected.length, copy.length); 198 for (int j = 0; j < 512; j++) 199 { 200 assertEquals("testing byte " + j, expected[ j ], copy[ j ]); 201 } 202 203 block.setPropertyStart(0x87654321); 206 output = new ByteArrayOutputStream(512); 207 block.writeBlocks(output); 208 assertEquals(0x87654321, 209 new HeaderBlockReader(new ByteArrayInputStream(output 210 .toByteArray())).getPropertyStart()); 211 } 212 213 218 219 public void testSetSBATStart() 220 throws IOException 221 { 222 HeaderBlockWriter block = new HeaderBlockWriter(); 223 224 block.setSBATStart(0x01234567); 225 ByteArrayOutputStream output = new ByteArrayOutputStream(512); 226 227 block.writeBlocks(output); 228 byte[] copy = output.toByteArray(); 229 byte[] expected = 230 { 231 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 232 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 233 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 234 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 235 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 236 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 237 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 238 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 239 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 240 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 241 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 242 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 243 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 244 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 245 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 246 ( byte ) 0x67, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 247 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 248 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 249 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 250 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 251 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 252 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 253 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 254 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 255 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 256 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 257 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 258 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 259 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 260 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 261 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 262 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 263 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 264 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 265 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 266 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 267 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 268 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 269 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 270 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 271 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 272 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 273 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 274 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 275 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 276 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 277 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 278 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 279 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 280 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 281 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 282 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 283 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 284 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 285 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 286 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 287 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 288 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 289 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 290 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 291 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 292 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 293 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 294 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 295 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 296 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 297 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 298 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 299 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 300 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 301 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 302 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 303 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 304 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 305 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 306 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 307 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 308 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 309 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 310 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 311 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 312 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 313 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 314 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 315 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 316 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 317 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 318 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 319 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 320 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 321 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 322 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 323 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 324 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 325 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 326 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 327 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 328 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 329 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 330 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 331 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 332 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 333 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 334 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 335 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 336 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 337 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 338 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 339 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 340 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 341 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 342 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 343 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 344 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 345 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 346 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 347 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 348 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 349 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 350 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 351 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 352 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 353 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 354 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 355 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 356 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 357 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 358 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF 359 }; 360 361 assertEquals(expected.length, copy.length); 362 for (int j = 0; j < 512; j++) 363 { 364 assertEquals("testing byte " + j, expected[ j ], copy[ j ]); 365 } 366 } 367 368 373 374 public void testSetPropertyStart() 375 throws IOException 376 { 377 HeaderBlockWriter block = new HeaderBlockWriter(); 378 379 block.setPropertyStart(0x01234567); 380 ByteArrayOutputStream output = new ByteArrayOutputStream(512); 381 382 block.writeBlocks(output); 383 byte[] copy = output.toByteArray(); 384 byte[] expected = 385 { 386 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 387 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 388 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 389 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 390 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 391 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 392 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 393 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 394 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 395 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 396 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 397 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 398 ( byte ) 0x67, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 399 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 400 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 401 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 402 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 403 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 404 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 405 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 406 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 407 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 408 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 409 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 410 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 411 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 412 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 413 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 414 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 415 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 416 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 417 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 418 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 419 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 420 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 421 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 422 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 423 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 424 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 425 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 426 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 427 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 428 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 429 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 430 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 431 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 432 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 433 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 434 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 435 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 436 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 437 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 438 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 439 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 440 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 441 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 442 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 443 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 444 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 445 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 446 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 447 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 448 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 449 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 450 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 451 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 452 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 453 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 454 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 455 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 456 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 457 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 458 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 459 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 460 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 461 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 462 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 463 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 464 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 465 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 466 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 467 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 468 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 469 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 470 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 471 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 472 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 473 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 474 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 475 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 476 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 477 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 478 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 479 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 480 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 481 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 482 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 483 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 484 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 485 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 486 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 487 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 488 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 489 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 490 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 491 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 492 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 493 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 494 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 495 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 496 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 497 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 498 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 499 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 500 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 501 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 502 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 503 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 504 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 505 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 506 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 507 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 508 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 509 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 510 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 511 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 512 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 513 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF 514 }; 515 516 assertEquals(expected.length, copy.length); 517 for (int j = 0; j < 512; j++) 518 { 519 assertEquals("testing byte " + j, expected[ j ], copy[ j ]); 520 } 521 } 522 523 529 530 public void testSetBATBlocks() 531 throws IOException 532 { 533 534 HeaderBlockWriter block = new HeaderBlockWriter(); 536 BATBlock[] xbats = block.setBATBlocks(5, 0x01234567); 537 538 assertEquals(0, xbats.length); 539 assertEquals(0, HeaderBlockWriter 540 .calculateXBATStorageRequirements(5)); 541 ByteArrayOutputStream output = new ByteArrayOutputStream(512); 542 543 block.writeBlocks(output); 544 byte[] copy = output.toByteArray(); 545 byte[] expected = 546 { 547 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 548 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 549 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 550 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 551 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 552 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 553 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 554 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 555 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 556 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 557 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 558 ( byte ) 0x05, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 559 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 560 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 561 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 562 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 563 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 564 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 565 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 566 ( byte ) 0x67, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 567 ( byte ) 0x68, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 568 ( byte ) 0x69, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 569 ( byte ) 0x6A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 570 ( byte ) 0x6B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 571 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 572 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 573 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 574 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 575 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 576 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 577 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 578 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 579 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 580 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 581 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 582 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 583 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 584 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 585 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 586 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 587 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 588 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 589 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 590 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 591 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 592 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 593 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 594 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 595 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 596 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 597 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 598 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 599 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 600 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 601 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 602 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 603 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 604 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 605 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 606 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 607 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 608 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 609 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 610 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 611 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 612 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 613 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 614 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 615 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 616 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 617 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 618 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 619 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 620 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 621 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 622 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 623 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 624 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 625 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 626 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 627 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 628 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 629 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 630 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 631 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 632 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 633 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 634 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 635 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 636 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 637 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 638 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 639 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 640 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 641 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 642 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 643 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 644 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 645 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 646 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 647 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 648 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 649 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 650 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 651 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 652 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 653 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 654 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 655 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 656 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 657 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 658 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 659 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 660 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 661 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 662 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 663 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 664 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 665 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 666 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 667 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 668 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 669 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 670 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 671 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 672 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 673 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 674 ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF 675 }; 676 677 assertEquals(expected.length, copy.length); 678 for (int j = 0; j < 512; j++) 679 { 680 assertEquals("testing byte " + j, expected[ j ], copy[ j ]); 681 } 682 683 block = new HeaderBlockWriter(); 685 xbats = block.setBATBlocks(109, 0x01234567); 686 assertEquals(0, xbats.length); 687 assertEquals(0, HeaderBlockWriter 688 .calculateXBATStorageRequirements(109)); 689 output = new ByteArrayOutputStream(512); 690 block.writeBlocks(output); 691 copy = output.toByteArray(); 692 byte[] expected2 = 693 { 694 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 695 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 696 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 697 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 698 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 699 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 700 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 701 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 702 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 703 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 704 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 705 ( byte ) 0x6D, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 706 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 707 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 708 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 709 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 710 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 711 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 712 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 713 ( byte ) 0x67, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 714 ( byte ) 0x68, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 715 ( byte ) 0x69, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 716 ( byte ) 0x6A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 717 ( byte ) 0x6B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 718 ( byte ) 0x6C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 719 ( byte ) 0x6D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 720 ( byte ) 0x6E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 721 ( byte ) 0x6F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 722 ( byte ) 0x70, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 723 ( byte ) 0x71, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 724 ( byte ) 0x72, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 725 ( byte ) 0x73, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 726 ( byte ) 0x74, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 727 ( byte ) 0x75, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 728 ( byte ) 0x76, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 729 ( byte ) 0x77, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 730 ( byte ) 0x78, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 731 ( byte ) 0x79, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 732 ( byte ) 0x7A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 733 ( byte ) 0x7B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 734 ( byte ) 0x7C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 735 ( byte ) 0x7D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 736 ( byte ) 0x7E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 737 ( byte ) 0x7F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 738 ( byte ) 0x80, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 739 ( byte ) 0x81, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 740 ( byte ) 0x82, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 741 ( byte ) 0x83, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 742 ( byte ) 0x84, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 743 ( byte ) 0x85, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 744 ( byte ) 0x86, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 745 ( byte ) 0x87, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 746 ( byte ) 0x88, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 747 ( byte ) 0x89, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 748 ( byte ) 0x8A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 749 ( byte ) 0x8B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 750 ( byte ) 0x8C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 751 ( byte ) 0x8D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 752 ( byte ) 0x8E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 753 ( byte ) 0x8F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 754 ( byte ) 0x90, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 755 ( byte ) 0x91, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 756 ( byte ) 0x92, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 757 ( byte ) 0x93, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 758 ( byte ) 0x94, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 759 ( byte ) 0x95, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 760 ( byte ) 0x96, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 761 ( byte ) 0x97, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 762 ( byte ) 0x98, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 763 ( byte ) 0x99, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 764 ( byte ) 0x9A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 765 ( byte ) 0x9B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 766 ( byte ) 0x9C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 767 ( byte ) 0x9D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 768 ( byte ) 0x9E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 769 ( byte ) 0x9F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 770 ( byte ) 0xA0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 771 ( byte ) 0xA1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 772 ( byte ) 0xA2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 773 ( byte ) 0xA3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 774 ( byte ) 0xA4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 775 ( byte ) 0xA5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 776 ( byte ) 0xA6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 777 ( byte ) 0xA7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 778 ( byte ) 0xA8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 779 ( byte ) 0xA9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 780 ( byte ) 0xAA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 781 ( byte ) 0xAB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 782 ( byte ) 0xAC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 783 ( byte ) 0xAD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 784 ( byte ) 0xAE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 785 ( byte ) 0xAF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 786 ( byte ) 0xB0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 787 ( byte ) 0xB1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 788 ( byte ) 0xB2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 789 ( byte ) 0xB3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 790 ( byte ) 0xB4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 791 ( byte ) 0xB5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 792 ( byte ) 0xB6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 793 ( byte ) 0xB7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 794 ( byte ) 0xB8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 795 ( byte ) 0xB9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 796 ( byte ) 0xBA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 797 ( byte ) 0xBB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 798 ( byte ) 0xBC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 799 ( byte ) 0xBD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 800 ( byte ) 0xBE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 801 ( byte ) 0xBF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 802 ( byte ) 0xC0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 803 ( byte ) 0xC1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 804 ( byte ) 0xC2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 805 ( byte ) 0xC3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 806 ( byte ) 0xC4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 807 ( byte ) 0xC5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 808 ( byte ) 0xC6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 809 ( byte ) 0xC7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 810 ( byte ) 0xC8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 811 ( byte ) 0xC9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 812 ( byte ) 0xCA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 813 ( byte ) 0xCB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 814 ( byte ) 0xCC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 815 ( byte ) 0xCD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 816 ( byte ) 0xCE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 817 ( byte ) 0xCF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 818 ( byte ) 0xD0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 819 ( byte ) 0xD1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 820 ( byte ) 0xD2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 821 ( byte ) 0xD3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01 822 }; 823 824 assertEquals(expected2.length, copy.length); 825 for (int j = 0; j < 512; j++) 826 { 827 assertEquals("testing byte " + j, expected2[ j ], copy[ j ]); 828 } 829 830 block = new HeaderBlockWriter(); 832 xbats = block.setBATBlocks(256, 0x01234567); 833 assertEquals(2, xbats.length); 834 assertEquals(2, HeaderBlockWriter 835 .calculateXBATStorageRequirements(256)); 836 output = new ByteArrayOutputStream(512); 837 block.writeBlocks(output); 838 copy = output.toByteArray(); 839 byte[] expected3 = 840 { 841 ( byte ) 0xD0, ( byte ) 0xCF, ( byte ) 0x11, ( byte ) 0xE0, 842 ( byte ) 0xA1, ( byte ) 0xB1, ( byte ) 0x1A, ( byte ) 0xE1, 843 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 844 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 845 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 846 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 847 ( byte ) 0x3B, ( byte ) 0x00, ( byte ) 0x03, ( byte ) 0x00, 848 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0x09, ( byte ) 0x00, 849 ( byte ) 0x06, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 850 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 851 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 852 ( byte ) 0x00, ( byte ) 0x01, ( byte ) 0x00, ( byte ) 0x00, 853 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 854 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 855 ( byte ) 0x00, ( byte ) 0x10, ( byte ) 0x00, ( byte ) 0x00, 856 ( byte ) 0xFE, ( byte ) 0xFF, ( byte ) 0xFF, ( byte ) 0xFF, 857 ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 858 ( byte ) 0x67, ( byte ) 0x46, ( byte ) 0x23, ( byte ) 0x01, 859 ( byte ) 0x02, ( byte ) 0x00, ( byte ) 0x00, ( byte ) 0x00, 860 ( byte ) 0x67, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 861 ( byte ) 0x68, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 862 ( byte ) 0x69, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 863 ( byte ) 0x6A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 864 ( byte ) 0x6B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 865 ( byte ) 0x6C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 866 ( byte ) 0x6D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 867 ( byte ) 0x6E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 868 ( byte ) 0x6F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 869 ( byte ) 0x70, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 870 ( byte ) 0x71, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 871 ( byte ) 0x72, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 872 ( byte ) 0x73, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 873 ( byte ) 0x74, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 874 ( byte ) 0x75, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 875 ( byte ) 0x76, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 876 ( byte ) 0x77, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 877 ( byte ) 0x78, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 878 ( byte ) 0x79, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 879 ( byte ) 0x7A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 880 ( byte ) 0x7B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 881 ( byte ) 0x7C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 882 ( byte ) 0x7D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 883 ( byte ) 0x7E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 884 ( byte ) 0x7F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 885 ( byte ) 0x80, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 886 ( byte ) 0x81, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 887 ( byte ) 0x82, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 888 ( byte ) 0x83, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 889 ( byte ) 0x84, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 890 ( byte ) 0x85, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 891 ( byte ) 0x86, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 892 ( byte ) 0x87, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 893 ( byte ) 0x88, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 894 ( byte ) 0x89, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 895 ( byte ) 0x8A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 896 ( byte ) 0x8B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 897 ( byte ) 0x8C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 898 ( byte ) 0x8D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 899 ( byte ) 0x8E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 900 ( byte ) 0x8F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 901 ( byte ) 0x90, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 902 ( byte ) 0x91, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 903 ( byte ) 0x92, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 904 ( byte ) 0x93, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 905 ( byte ) 0x94, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 906 ( byte ) 0x95, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 907 ( byte ) 0x96, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 908 ( byte ) 0x97, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 909 ( byte ) 0x98, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 910 ( byte ) 0x99, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 911 ( byte ) 0x9A, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 912 ( byte ) 0x9B, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 913 ( byte ) 0x9C, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 914 ( byte ) 0x9D, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 915 ( byte ) 0x9E, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 916 ( byte ) 0x9F, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 917 ( byte ) 0xA0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 918 ( byte ) 0xA1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 919 ( byte ) 0xA2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 920 ( byte ) 0xA3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 921 ( byte ) 0xA4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 922 ( byte ) 0xA5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 923 ( byte ) 0xA6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 924 ( byte ) 0xA7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 925 ( byte ) 0xA8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 926 ( byte ) 0xA9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 927 ( byte ) 0xAA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 928 ( byte ) 0xAB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 929 ( byte ) 0xAC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 930 ( byte ) 0xAD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 931 ( byte ) 0xAE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 932 ( byte ) 0xAF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 933 ( byte ) 0xB0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 934 ( byte ) 0xB1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 935 ( byte ) 0xB2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 936 ( byte ) 0xB3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 937 ( byte ) 0xB4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 938 ( byte ) 0xB5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 939 ( byte ) 0xB6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 940 ( byte ) 0xB7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 941 ( byte ) 0xB8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 942 ( byte ) 0xB9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 943 ( byte ) 0xBA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 944 ( byte ) 0xBB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 945 ( byte ) 0xBC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 946 ( byte ) 0xBD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 947 ( byte ) 0xBE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 948 ( byte ) 0xBF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 949 ( byte ) 0xC0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 950 ( byte ) 0xC1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 951 ( byte ) 0xC2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 952 ( byte ) 0xC3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 953 ( byte ) 0xC4, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 954 ( byte ) 0xC5, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 955 ( byte ) 0xC6, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 956 ( byte ) 0xC7, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 957 ( byte ) 0xC8, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 958 ( byte ) 0xC9, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 959 ( byte ) 0xCA, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 960 ( byte ) 0xCB, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 961 ( byte ) 0xCC, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 962 ( byte ) 0xCD, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 963 ( byte ) 0xCE, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 964 ( byte ) 0xCF, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 965 ( byte ) 0xD0, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 966 ( byte ) 0xD1, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 967 ( byte ) 0xD2, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01, 968 ( byte ) 0xD3, ( byte ) 0x45, ( byte ) 0x23, ( byte ) 0x01 969 }; 970 971 assertEquals(expected3.length, copy.length); 972 for (int j = 0; j < 512; j++) 973 { 974 assertEquals("testing byte " + j, expected3[ j ], copy[ j ]); 975 } 976 output = new ByteArrayOutputStream(1028); 977 xbats[ 0 ].writeBlocks(output); 978 xbats[ 1 ].writeBlocks(output); 979 copy = output.toByteArray(); 980 int correct = 0x012345D4; 981 int offset = 0; 982 int k = 0; 983 984 for (; k < 127; k++) 985 { 986 assertEquals("XBAT entry " + k, correct, 987 LittleEndian.getInt(copy, offset)); 988 correct++; 989 offset += LittleEndianConsts.INT_SIZE; 990 } 991 assertEquals("XBAT Chain", 0x01234567 + 257, 992 LittleEndian.getInt(copy, offset)); 993 offset += LittleEndianConsts.INT_SIZE; 994 k++; 995 for (; k < 148; k++) 996 { 997 assertEquals("XBAT entry " + k, correct, 998 LittleEndian.getInt(copy, offset)); 999 correct++; 1000 offset += LittleEndianConsts.INT_SIZE; 1001 } 1002 for (; k < 255; k++) 1003 { 1004 assertEquals("XBAT entry " + k, -1, 1005 LittleEndian.getInt(copy, offset)); 1006 offset += LittleEndianConsts.INT_SIZE; 1007 } 1008 assertEquals("XBAT End of chain", -2, 1009 LittleEndian.getInt(copy, offset)); 1010 } 1011 1012 1017 1018 public static void main(String [] ignored_args) 1019 { 1020 System.out.println( 1021 "Testing org.apache.poi.poifs.storage.HeaderBlockWriter"); 1022 junit.textui.TestRunner.run(TestHeaderBlockWriter.class); 1023 } 1024} 1025 | Popular Tags |