001: /* ====================================================================
002: Licensed to the Apache Software Foundation (ASF) under one or more
003: contributor license agreements. See the NOTICE file distributed with
004: this work for additional information regarding copyright ownership.
005: The ASF licenses this file to You under the Apache License, Version 2.0
006: (the "License"); you may not use this file except in compliance with
007: the License. You may obtain a copy of the License at
008:
009: http://www.apache.org/licenses/LICENSE-2.0
010:
011: Unless required by applicable law or agreed to in writing, software
012: distributed under the License is distributed on an "AS IS" BASIS,
013: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: See the License for the specific language governing permissions and
015: limitations under the License.
016: ==================================================================== */
017:
018: package org.apache.poi.poifs.storage;
019:
020: import java.io.*;
021:
022: import java.util.*;
023:
024: import junit.framework.*;
025:
026: import org.apache.poi.util.LittleEndian;
027: import org.apache.poi.util.LittleEndianConsts;
028:
029: /**
030: * Class to test HeaderBlockWriter functionality
031: *
032: * @author Marc Johnson
033: */
034:
035: public class TestHeaderBlockWriter extends TestCase {
036:
037: /**
038: * Constructor TestHeaderBlockWriter
039: *
040: * @param name
041: */
042:
043: public TestHeaderBlockWriter(String name) {
044: super (name);
045: }
046:
047: /**
048: * Test creating a HeaderBlockWriter
049: *
050: * @exception IOException
051: */
052:
053: public void testConstructors() throws IOException {
054: HeaderBlockWriter block = new HeaderBlockWriter();
055: ByteArrayOutputStream output = new ByteArrayOutputStream(512);
056:
057: block.writeBlocks(output);
058: byte[] copy = output.toByteArray();
059: byte[] expected = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
060: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
061: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
062: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
063: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
064: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
065: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
066: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
067: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
068: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
069: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
070: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
071: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
072: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
073: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
074: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
075: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
076: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
077: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
078: (byte) 0x00, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
079: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
080: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
081: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
082: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
083: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
084: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
085: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
086: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
087: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
088: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
089: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
090: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
091: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
092: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
093: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
094: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
095: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
096: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
097: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
098: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
099: (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 };
188:
189: assertEquals(expected.length, copy.length);
190: for (int j = 0; j < 512; j++) {
191: assertEquals("testing byte " + j, expected[j], copy[j]);
192: }
193:
194: // verify we can read a 'good' HeaderBlockWriter (also test
195: // getPropertyStart)
196: block.setPropertyStart(0x87654321);
197: output = new ByteArrayOutputStream(512);
198: block.writeBlocks(output);
199: assertEquals(0x87654321, new HeaderBlockReader(
200: new ByteArrayInputStream(output.toByteArray()))
201: .getPropertyStart());
202: }
203:
204: /**
205: * Test setting the SBAT start block
206: *
207: * @exception IOException
208: */
209:
210: public void testSetSBATStart() throws IOException {
211: HeaderBlockWriter block = new HeaderBlockWriter();
212:
213: block.setSBATStart(0x01234567);
214: ByteArrayOutputStream output = new ByteArrayOutputStream(512);
215:
216: block.writeBlocks(output);
217: byte[] copy = output.toByteArray();
218: byte[] expected = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
219: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
220: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
221: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
222: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
223: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
224: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
225: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
226: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
227: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
228: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
229: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
230: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
231: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
232: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
233: (byte) 0x00, (byte) 0x67, (byte) 0x45, (byte) 0x23,
234: (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
235: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
236: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
237: (byte) 0x00, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
238: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
239: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
240: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
241: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
242: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
243: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
244: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
245: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
246: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
247: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
248: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
249: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
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 };
347:
348: assertEquals(expected.length, copy.length);
349: for (int j = 0; j < 512; j++) {
350: assertEquals("testing byte " + j, expected[j], copy[j]);
351: }
352: }
353:
354: /**
355: * test setPropertyStart and getPropertyStart
356: *
357: * @exception IOException
358: */
359:
360: public void testSetPropertyStart() throws IOException {
361: HeaderBlockWriter block = new HeaderBlockWriter();
362:
363: block.setPropertyStart(0x01234567);
364: ByteArrayOutputStream output = new ByteArrayOutputStream(512);
365:
366: block.writeBlocks(output);
367: byte[] copy = output.toByteArray();
368: byte[] expected = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
369: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
370: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
371: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
372: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
373: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
374: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
375: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
376: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
377: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
378: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
379: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
380: (byte) 0x00, (byte) 0x67, (byte) 0x45, (byte) 0x23,
381: (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00,
382: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
383: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
384: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
385: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
386: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
387: (byte) 0x00, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
388: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
389: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
390: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
391: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
392: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
393: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
394: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
395: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
396: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
397: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
398: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
399: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
400: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
401: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
402: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
403: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
404: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
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 };
497:
498: assertEquals(expected.length, copy.length);
499: for (int j = 0; j < 512; j++) {
500: assertEquals("testing byte " + j, expected[j], copy[j]);
501: }
502: }
503:
504: /**
505: * test setting the BAT blocks; also tests getBATCount,
506: * getBATArray, getXBATCount
507: *
508: * @exception IOException
509: */
510:
511: public void testSetBATBlocks() throws IOException {
512:
513: // first, a small set of blocks
514: HeaderBlockWriter block = new HeaderBlockWriter();
515: BATBlock[] xbats = block.setBATBlocks(5, 0x01234567);
516:
517: assertEquals(0, xbats.length);
518: assertEquals(0, HeaderBlockWriter
519: .calculateXBATStorageRequirements(5));
520: ByteArrayOutputStream output = new ByteArrayOutputStream(512);
521:
522: block.writeBlocks(output);
523: byte[] copy = output.toByteArray();
524: byte[] expected = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
525: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
526: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
527: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
528: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
529: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
530: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
531: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
532: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
533: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
534: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
535: (byte) 0x00, (byte) 0x05, (byte) 0x00, (byte) 0x00,
536: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
537: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
538: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
539: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
540: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
541: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
542: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
543: (byte) 0x00, (byte) 0x67, (byte) 0x45, (byte) 0x23,
544: (byte) 0x01, (byte) 0x68, (byte) 0x45, (byte) 0x23,
545: (byte) 0x01, (byte) 0x69, (byte) 0x45, (byte) 0x23,
546: (byte) 0x01, (byte) 0x6A, (byte) 0x45, (byte) 0x23,
547: (byte) 0x01, (byte) 0x6B, (byte) 0x45, (byte) 0x23,
548: (byte) 0x01, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
549: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
550: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
551: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
552: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
553: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
554: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
555: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
556: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
557: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
558: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
559: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
560: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
561: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
562: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
563: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
564: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
565: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
566: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
567: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
568: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
569: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
570: (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF,
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 };
653:
654: assertEquals(expected.length, copy.length);
655: for (int j = 0; j < 512; j++) {
656: assertEquals("testing byte " + j, expected[j], copy[j]);
657: }
658:
659: // second, a full set of blocks (109 blocks)
660: block = new HeaderBlockWriter();
661: xbats = block.setBATBlocks(109, 0x01234567);
662: assertEquals(0, xbats.length);
663: assertEquals(0, HeaderBlockWriter
664: .calculateXBATStorageRequirements(109));
665: output = new ByteArrayOutputStream(512);
666: block.writeBlocks(output);
667: copy = output.toByteArray();
668: byte[] expected2 = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
669: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
670: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
671: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
672: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
673: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
674: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
675: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
676: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
677: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
678: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
679: (byte) 0x00, (byte) 0x6D, (byte) 0x00, (byte) 0x00,
680: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
681: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
682: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
683: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
684: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
685: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
686: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
687: (byte) 0x00, (byte) 0x67, (byte) 0x45, (byte) 0x23,
688: (byte) 0x01, (byte) 0x68, (byte) 0x45, (byte) 0x23,
689: (byte) 0x01, (byte) 0x69, (byte) 0x45, (byte) 0x23,
690: (byte) 0x01, (byte) 0x6A, (byte) 0x45, (byte) 0x23,
691: (byte) 0x01, (byte) 0x6B, (byte) 0x45, (byte) 0x23,
692: (byte) 0x01, (byte) 0x6C, (byte) 0x45, (byte) 0x23,
693: (byte) 0x01, (byte) 0x6D, (byte) 0x45, (byte) 0x23,
694: (byte) 0x01, (byte) 0x6E, (byte) 0x45, (byte) 0x23,
695: (byte) 0x01, (byte) 0x6F, (byte) 0x45, (byte) 0x23,
696: (byte) 0x01, (byte) 0x70, (byte) 0x45, (byte) 0x23,
697: (byte) 0x01, (byte) 0x71, (byte) 0x45, (byte) 0x23,
698: (byte) 0x01, (byte) 0x72, (byte) 0x45, (byte) 0x23,
699: (byte) 0x01, (byte) 0x73, (byte) 0x45, (byte) 0x23,
700: (byte) 0x01, (byte) 0x74, (byte) 0x45, (byte) 0x23,
701: (byte) 0x01, (byte) 0x75, (byte) 0x45, (byte) 0x23,
702: (byte) 0x01, (byte) 0x76, (byte) 0x45, (byte) 0x23,
703: (byte) 0x01, (byte) 0x77, (byte) 0x45, (byte) 0x23,
704: (byte) 0x01, (byte) 0x78, (byte) 0x45, (byte) 0x23,
705: (byte) 0x01, (byte) 0x79, (byte) 0x45, (byte) 0x23,
706: (byte) 0x01, (byte) 0x7A, (byte) 0x45, (byte) 0x23,
707: (byte) 0x01, (byte) 0x7B, (byte) 0x45, (byte) 0x23,
708: (byte) 0x01, (byte) 0x7C, (byte) 0x45, (byte) 0x23,
709: (byte) 0x01, (byte) 0x7D, (byte) 0x45, (byte) 0x23,
710: (byte) 0x01, (byte) 0x7E, (byte) 0x45, (byte) 0x23,
711: (byte) 0x01, (byte) 0x7F, (byte) 0x45, (byte) 0x23,
712: (byte) 0x01, (byte) 0x80, (byte) 0x45, (byte) 0x23,
713: (byte) 0x01, (byte) 0x81, (byte) 0x45, (byte) 0x23,
714: (byte) 0x01, (byte) 0x82, (byte) 0x45, (byte) 0x23,
715: (byte) 0x01, (byte) 0x83, (byte) 0x45, (byte) 0x23,
716: (byte) 0x01, (byte) 0x84, (byte) 0x45, (byte) 0x23,
717: (byte) 0x01, (byte) 0x85, (byte) 0x45, (byte) 0x23,
718: (byte) 0x01, (byte) 0x86, (byte) 0x45, (byte) 0x23,
719: (byte) 0x01, (byte) 0x87, (byte) 0x45, (byte) 0x23,
720: (byte) 0x01, (byte) 0x88, (byte) 0x45, (byte) 0x23,
721: (byte) 0x01, (byte) 0x89, (byte) 0x45, (byte) 0x23,
722: (byte) 0x01, (byte) 0x8A, (byte) 0x45, (byte) 0x23,
723: (byte) 0x01, (byte) 0x8B, (byte) 0x45, (byte) 0x23,
724: (byte) 0x01, (byte) 0x8C, (byte) 0x45, (byte) 0x23,
725: (byte) 0x01, (byte) 0x8D, (byte) 0x45, (byte) 0x23,
726: (byte) 0x01, (byte) 0x8E, (byte) 0x45, (byte) 0x23,
727: (byte) 0x01, (byte) 0x8F, (byte) 0x45, (byte) 0x23,
728: (byte) 0x01, (byte) 0x90, (byte) 0x45, (byte) 0x23,
729: (byte) 0x01, (byte) 0x91, (byte) 0x45, (byte) 0x23,
730: (byte) 0x01, (byte) 0x92, (byte) 0x45, (byte) 0x23,
731: (byte) 0x01, (byte) 0x93, (byte) 0x45, (byte) 0x23,
732: (byte) 0x01, (byte) 0x94, (byte) 0x45, (byte) 0x23,
733: (byte) 0x01, (byte) 0x95, (byte) 0x45, (byte) 0x23,
734: (byte) 0x01, (byte) 0x96, (byte) 0x45, (byte) 0x23,
735: (byte) 0x01, (byte) 0x97, (byte) 0x45, (byte) 0x23,
736: (byte) 0x01, (byte) 0x98, (byte) 0x45, (byte) 0x23,
737: (byte) 0x01, (byte) 0x99, (byte) 0x45, (byte) 0x23,
738: (byte) 0x01, (byte) 0x9A, (byte) 0x45, (byte) 0x23,
739: (byte) 0x01, (byte) 0x9B, (byte) 0x45, (byte) 0x23,
740: (byte) 0x01, (byte) 0x9C, (byte) 0x45, (byte) 0x23,
741: (byte) 0x01, (byte) 0x9D, (byte) 0x45, (byte) 0x23,
742: (byte) 0x01, (byte) 0x9E, (byte) 0x45, (byte) 0x23,
743: (byte) 0x01, (byte) 0x9F, (byte) 0x45, (byte) 0x23,
744: (byte) 0x01, (byte) 0xA0, (byte) 0x45, (byte) 0x23,
745: (byte) 0x01, (byte) 0xA1, (byte) 0x45, (byte) 0x23,
746: (byte) 0x01, (byte) 0xA2, (byte) 0x45, (byte) 0x23,
747: (byte) 0x01, (byte) 0xA3, (byte) 0x45, (byte) 0x23,
748: (byte) 0x01, (byte) 0xA4, (byte) 0x45, (byte) 0x23,
749: (byte) 0x01, (byte) 0xA5, (byte) 0x45, (byte) 0x23,
750: (byte) 0x01, (byte) 0xA6, (byte) 0x45, (byte) 0x23,
751: (byte) 0x01, (byte) 0xA7, (byte) 0x45, (byte) 0x23,
752: (byte) 0x01, (byte) 0xA8, (byte) 0x45, (byte) 0x23,
753: (byte) 0x01, (byte) 0xA9, (byte) 0x45, (byte) 0x23,
754: (byte) 0x01, (byte) 0xAA, (byte) 0x45, (byte) 0x23,
755: (byte) 0x01, (byte) 0xAB, (byte) 0x45, (byte) 0x23,
756: (byte) 0x01, (byte) 0xAC, (byte) 0x45, (byte) 0x23,
757: (byte) 0x01, (byte) 0xAD, (byte) 0x45, (byte) 0x23,
758: (byte) 0x01, (byte) 0xAE, (byte) 0x45, (byte) 0x23,
759: (byte) 0x01, (byte) 0xAF, (byte) 0x45, (byte) 0x23,
760: (byte) 0x01, (byte) 0xB0, (byte) 0x45, (byte) 0x23,
761: (byte) 0x01, (byte) 0xB1, (byte) 0x45, (byte) 0x23,
762: (byte) 0x01, (byte) 0xB2, (byte) 0x45, (byte) 0x23,
763: (byte) 0x01, (byte) 0xB3, (byte) 0x45, (byte) 0x23,
764: (byte) 0x01, (byte) 0xB4, (byte) 0x45, (byte) 0x23,
765: (byte) 0x01, (byte) 0xB5, (byte) 0x45, (byte) 0x23,
766: (byte) 0x01, (byte) 0xB6, (byte) 0x45, (byte) 0x23,
767: (byte) 0x01, (byte) 0xB7, (byte) 0x45, (byte) 0x23,
768: (byte) 0x01, (byte) 0xB8, (byte) 0x45, (byte) 0x23,
769: (byte) 0x01, (byte) 0xB9, (byte) 0x45, (byte) 0x23,
770: (byte) 0x01, (byte) 0xBA, (byte) 0x45, (byte) 0x23,
771: (byte) 0x01, (byte) 0xBB, (byte) 0x45, (byte) 0x23,
772: (byte) 0x01, (byte) 0xBC, (byte) 0x45, (byte) 0x23,
773: (byte) 0x01, (byte) 0xBD, (byte) 0x45, (byte) 0x23,
774: (byte) 0x01, (byte) 0xBE, (byte) 0x45, (byte) 0x23,
775: (byte) 0x01, (byte) 0xBF, (byte) 0x45, (byte) 0x23,
776: (byte) 0x01, (byte) 0xC0, (byte) 0x45, (byte) 0x23,
777: (byte) 0x01, (byte) 0xC1, (byte) 0x45, (byte) 0x23,
778: (byte) 0x01, (byte) 0xC2, (byte) 0x45, (byte) 0x23,
779: (byte) 0x01, (byte) 0xC3, (byte) 0x45, (byte) 0x23,
780: (byte) 0x01, (byte) 0xC4, (byte) 0x45, (byte) 0x23,
781: (byte) 0x01, (byte) 0xC5, (byte) 0x45, (byte) 0x23,
782: (byte) 0x01, (byte) 0xC6, (byte) 0x45, (byte) 0x23,
783: (byte) 0x01, (byte) 0xC7, (byte) 0x45, (byte) 0x23,
784: (byte) 0x01, (byte) 0xC8, (byte) 0x45, (byte) 0x23,
785: (byte) 0x01, (byte) 0xC9, (byte) 0x45, (byte) 0x23,
786: (byte) 0x01, (byte) 0xCA, (byte) 0x45, (byte) 0x23,
787: (byte) 0x01, (byte) 0xCB, (byte) 0x45, (byte) 0x23,
788: (byte) 0x01, (byte) 0xCC, (byte) 0x45, (byte) 0x23,
789: (byte) 0x01, (byte) 0xCD, (byte) 0x45, (byte) 0x23,
790: (byte) 0x01, (byte) 0xCE, (byte) 0x45, (byte) 0x23,
791: (byte) 0x01, (byte) 0xCF, (byte) 0x45, (byte) 0x23,
792: (byte) 0x01, (byte) 0xD0, (byte) 0x45, (byte) 0x23,
793: (byte) 0x01, (byte) 0xD1, (byte) 0x45, (byte) 0x23,
794: (byte) 0x01, (byte) 0xD2, (byte) 0x45, (byte) 0x23,
795: (byte) 0x01, (byte) 0xD3, (byte) 0x45, (byte) 0x23,
796: (byte) 0x01 };
797:
798: assertEquals(expected2.length, copy.length);
799: for (int j = 0; j < 512; j++) {
800: assertEquals("testing byte " + j, expected2[j], copy[j]);
801: }
802:
803: // finally, a really large set of blocks (256 blocks)
804: block = new HeaderBlockWriter();
805: xbats = block.setBATBlocks(256, 0x01234567);
806: assertEquals(2, xbats.length);
807: assertEquals(2, HeaderBlockWriter
808: .calculateXBATStorageRequirements(256));
809: output = new ByteArrayOutputStream(512);
810: block.writeBlocks(output);
811: copy = output.toByteArray();
812: byte[] expected3 = { (byte) 0xD0, (byte) 0xCF, (byte) 0x11,
813: (byte) 0xE0, (byte) 0xA1, (byte) 0xB1, (byte) 0x1A,
814: (byte) 0xE1, (byte) 0x00, (byte) 0x00, (byte) 0x00,
815: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
816: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
817: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
818: (byte) 0x00, (byte) 0x3B, (byte) 0x00, (byte) 0x03,
819: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0x09,
820: (byte) 0x00, (byte) 0x06, (byte) 0x00, (byte) 0x00,
821: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
822: (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
823: (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00,
824: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
825: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
826: (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x00,
827: (byte) 0x00, (byte) 0xFE, (byte) 0xFF, (byte) 0xFF,
828: (byte) 0xFF, (byte) 0x00, (byte) 0x00, (byte) 0x00,
829: (byte) 0x00, (byte) 0x67, (byte) 0x46, (byte) 0x23,
830: (byte) 0x01, (byte) 0x02, (byte) 0x00, (byte) 0x00,
831: (byte) 0x00, (byte) 0x67, (byte) 0x45, (byte) 0x23,
832: (byte) 0x01, (byte) 0x68, (byte) 0x45, (byte) 0x23,
833: (byte) 0x01, (byte) 0x69, (byte) 0x45, (byte) 0x23,
834: (byte) 0x01, (byte) 0x6A, (byte) 0x45, (byte) 0x23,
835: (byte) 0x01, (byte) 0x6B, (byte) 0x45, (byte) 0x23,
836: (byte) 0x01, (byte) 0x6C, (byte) 0x45, (byte) 0x23,
837: (byte) 0x01, (byte) 0x6D, (byte) 0x45, (byte) 0x23,
838: (byte) 0x01, (byte) 0x6E, (byte) 0x45, (byte) 0x23,
839: (byte) 0x01, (byte) 0x6F, (byte) 0x45, (byte) 0x23,
840: (byte) 0x01, (byte) 0x70, (byte) 0x45, (byte) 0x23,
841: (byte) 0x01, (byte) 0x71, (byte) 0x45, (byte) 0x23,
842: (byte) 0x01, (byte) 0x72, (byte) 0x45, (byte) 0x23,
843: (byte) 0x01, (byte) 0x73, (byte) 0x45, (byte) 0x23,
844: (byte) 0x01, (byte) 0x74, (byte) 0x45, (byte) 0x23,
845: (byte) 0x01, (byte) 0x75, (byte) 0x45, (byte) 0x23,
846: (byte) 0x01, (byte) 0x76, (byte) 0x45, (byte) 0x23,
847: (byte) 0x01, (byte) 0x77, (byte) 0x45, (byte) 0x23,
848: (byte) 0x01, (byte) 0x78, (byte) 0x45, (byte) 0x23,
849: (byte) 0x01, (byte) 0x79, (byte) 0x45, (byte) 0x23,
850: (byte) 0x01, (byte) 0x7A, (byte) 0x45, (byte) 0x23,
851: (byte) 0x01, (byte) 0x7B, (byte) 0x45, (byte) 0x23,
852: (byte) 0x01, (byte) 0x7C, (byte) 0x45, (byte) 0x23,
853: (byte) 0x01, (byte) 0x7D, (byte) 0x45, (byte) 0x23,
854: (byte) 0x01, (byte) 0x7E, (byte) 0x45, (byte) 0x23,
855: (byte) 0x01, (byte) 0x7F, (byte) 0x45, (byte) 0x23,
856: (byte) 0x01, (byte) 0x80, (byte) 0x45, (byte) 0x23,
857: (byte) 0x01, (byte) 0x81, (byte) 0x45, (byte) 0x23,
858: (byte) 0x01, (byte) 0x82, (byte) 0x45, (byte) 0x23,
859: (byte) 0x01, (byte) 0x83, (byte) 0x45, (byte) 0x23,
860: (byte) 0x01, (byte) 0x84, (byte) 0x45, (byte) 0x23,
861: (byte) 0x01, (byte) 0x85, (byte) 0x45, (byte) 0x23,
862: (byte) 0x01, (byte) 0x86, (byte) 0x45, (byte) 0x23,
863: (byte) 0x01, (byte) 0x87, (byte) 0x45, (byte) 0x23,
864: (byte) 0x01, (byte) 0x88, (byte) 0x45, (byte) 0x23,
865: (byte) 0x01, (byte) 0x89, (byte) 0x45, (byte) 0x23,
866: (byte) 0x01, (byte) 0x8A, (byte) 0x45, (byte) 0x23,
867: (byte) 0x01, (byte) 0x8B, (byte) 0x45, (byte) 0x23,
868: (byte) 0x01, (byte) 0x8C, (byte) 0x45, (byte) 0x23,
869: (byte) 0x01, (byte) 0x8D, (byte) 0x45, (byte) 0x23,
870: (byte) 0x01, (byte) 0x8E, (byte) 0x45, (byte) 0x23,
871: (byte) 0x01, (byte) 0x8F, (byte) 0x45, (byte) 0x23,
872: (byte) 0x01, (byte) 0x90, (byte) 0x45, (byte) 0x23,
873: (byte) 0x01, (byte) 0x91, (byte) 0x45, (byte) 0x23,
874: (byte) 0x01, (byte) 0x92, (byte) 0x45, (byte) 0x23,
875: (byte) 0x01, (byte) 0x93, (byte) 0x45, (byte) 0x23,
876: (byte) 0x01, (byte) 0x94, (byte) 0x45, (byte) 0x23,
877: (byte) 0x01, (byte) 0x95, (byte) 0x45, (byte) 0x23,
878: (byte) 0x01, (byte) 0x96, (byte) 0x45, (byte) 0x23,
879: (byte) 0x01, (byte) 0x97, (byte) 0x45, (byte) 0x23,
880: (byte) 0x01, (byte) 0x98, (byte) 0x45, (byte) 0x23,
881: (byte) 0x01, (byte) 0x99, (byte) 0x45, (byte) 0x23,
882: (byte) 0x01, (byte) 0x9A, (byte) 0x45, (byte) 0x23,
883: (byte) 0x01, (byte) 0x9B, (byte) 0x45, (byte) 0x23,
884: (byte) 0x01, (byte) 0x9C, (byte) 0x45, (byte) 0x23,
885: (byte) 0x01, (byte) 0x9D, (byte) 0x45, (byte) 0x23,
886: (byte) 0x01, (byte) 0x9E, (byte) 0x45, (byte) 0x23,
887: (byte) 0x01, (byte) 0x9F, (byte) 0x45, (byte) 0x23,
888: (byte) 0x01, (byte) 0xA0, (byte) 0x45, (byte) 0x23,
889: (byte) 0x01, (byte) 0xA1, (byte) 0x45, (byte) 0x23,
890: (byte) 0x01, (byte) 0xA2, (byte) 0x45, (byte) 0x23,
891: (byte) 0x01, (byte) 0xA3, (byte) 0x45, (byte) 0x23,
892: (byte) 0x01, (byte) 0xA4, (byte) 0x45, (byte) 0x23,
893: (byte) 0x01, (byte) 0xA5, (byte) 0x45, (byte) 0x23,
894: (byte) 0x01, (byte) 0xA6, (byte) 0x45, (byte) 0x23,
895: (byte) 0x01, (byte) 0xA7, (byte) 0x45, (byte) 0x23,
896: (byte) 0x01, (byte) 0xA8, (byte) 0x45, (byte) 0x23,
897: (byte) 0x01, (byte) 0xA9, (byte) 0x45, (byte) 0x23,
898: (byte) 0x01, (byte) 0xAA, (byte) 0x45, (byte) 0x23,
899: (byte) 0x01, (byte) 0xAB, (byte) 0x45, (byte) 0x23,
900: (byte) 0x01, (byte) 0xAC, (byte) 0x45, (byte) 0x23,
901: (byte) 0x01, (byte) 0xAD, (byte) 0x45, (byte) 0x23,
902: (byte) 0x01, (byte) 0xAE, (byte) 0x45, (byte) 0x23,
903: (byte) 0x01, (byte) 0xAF, (byte) 0x45, (byte) 0x23,
904: (byte) 0x01, (byte) 0xB0, (byte) 0x45, (byte) 0x23,
905: (byte) 0x01, (byte) 0xB1, (byte) 0x45, (byte) 0x23,
906: (byte) 0x01, (byte) 0xB2, (byte) 0x45, (byte) 0x23,
907: (byte) 0x01, (byte) 0xB3, (byte) 0x45, (byte) 0x23,
908: (byte) 0x01, (byte) 0xB4, (byte) 0x45, (byte) 0x23,
909: (byte) 0x01, (byte) 0xB5, (byte) 0x45, (byte) 0x23,
910: (byte) 0x01, (byte) 0xB6, (byte) 0x45, (byte) 0x23,
911: (byte) 0x01, (byte) 0xB7, (byte) 0x45, (byte) 0x23,
912: (byte) 0x01, (byte) 0xB8, (byte) 0x45, (byte) 0x23,
913: (byte) 0x01, (byte) 0xB9, (byte) 0x45, (byte) 0x23,
914: (byte) 0x01, (byte) 0xBA, (byte) 0x45, (byte) 0x23,
915: (byte) 0x01, (byte) 0xBB, (byte) 0x45, (byte) 0x23,
916: (byte) 0x01, (byte) 0xBC, (byte) 0x45, (byte) 0x23,
917: (byte) 0x01, (byte) 0xBD, (byte) 0x45, (byte) 0x23,
918: (byte) 0x01, (byte) 0xBE, (byte) 0x45, (byte) 0x23,
919: (byte) 0x01, (byte) 0xBF, (byte) 0x45, (byte) 0x23,
920: (byte) 0x01, (byte) 0xC0, (byte) 0x45, (byte) 0x23,
921: (byte) 0x01, (byte) 0xC1, (byte) 0x45, (byte) 0x23,
922: (byte) 0x01, (byte) 0xC2, (byte) 0x45, (byte) 0x23,
923: (byte) 0x01, (byte) 0xC3, (byte) 0x45, (byte) 0x23,
924: (byte) 0x01, (byte) 0xC4, (byte) 0x45, (byte) 0x23,
925: (byte) 0x01, (byte) 0xC5, (byte) 0x45, (byte) 0x23,
926: (byte) 0x01, (byte) 0xC6, (byte) 0x45, (byte) 0x23,
927: (byte) 0x01, (byte) 0xC7, (byte) 0x45, (byte) 0x23,
928: (byte) 0x01, (byte) 0xC8, (byte) 0x45, (byte) 0x23,
929: (byte) 0x01, (byte) 0xC9, (byte) 0x45, (byte) 0x23,
930: (byte) 0x01, (byte) 0xCA, (byte) 0x45, (byte) 0x23,
931: (byte) 0x01, (byte) 0xCB, (byte) 0x45, (byte) 0x23,
932: (byte) 0x01, (byte) 0xCC, (byte) 0x45, (byte) 0x23,
933: (byte) 0x01, (byte) 0xCD, (byte) 0x45, (byte) 0x23,
934: (byte) 0x01, (byte) 0xCE, (byte) 0x45, (byte) 0x23,
935: (byte) 0x01, (byte) 0xCF, (byte) 0x45, (byte) 0x23,
936: (byte) 0x01, (byte) 0xD0, (byte) 0x45, (byte) 0x23,
937: (byte) 0x01, (byte) 0xD1, (byte) 0x45, (byte) 0x23,
938: (byte) 0x01, (byte) 0xD2, (byte) 0x45, (byte) 0x23,
939: (byte) 0x01, (byte) 0xD3, (byte) 0x45, (byte) 0x23,
940: (byte) 0x01 };
941:
942: assertEquals(expected3.length, copy.length);
943: for (int j = 0; j < 512; j++) {
944: assertEquals("testing byte " + j, expected3[j], copy[j]);
945: }
946: output = new ByteArrayOutputStream(1028);
947: xbats[0].writeBlocks(output);
948: xbats[1].writeBlocks(output);
949: copy = output.toByteArray();
950: int correct = 0x012345D4;
951: int offset = 0;
952: int k = 0;
953:
954: for (; k < 127; k++) {
955: assertEquals("XBAT entry " + k, correct, LittleEndian
956: .getInt(copy, offset));
957: correct++;
958: offset += LittleEndianConsts.INT_SIZE;
959: }
960: assertEquals("XBAT Chain", 0x01234567 + 257, LittleEndian
961: .getInt(copy, offset));
962: offset += LittleEndianConsts.INT_SIZE;
963: k++;
964: for (; k < 148; k++) {
965: assertEquals("XBAT entry " + k, correct, LittleEndian
966: .getInt(copy, offset));
967: correct++;
968: offset += LittleEndianConsts.INT_SIZE;
969: }
970: for (; k < 255; k++) {
971: assertEquals("XBAT entry " + k, -1, LittleEndian.getInt(
972: copy, offset));
973: offset += LittleEndianConsts.INT_SIZE;
974: }
975: assertEquals("XBAT End of chain", -2, LittleEndian.getInt(copy,
976: offset));
977: }
978:
979: /**
980: * main method to run the unit tests
981: *
982: * @param ignored_args
983: */
984:
985: public static void main(String[] ignored_args) {
986: System.out
987: .println("Testing org.apache.poi.poifs.storage.HeaderBlockWriter");
988: junit.textui.TestRunner.run(TestHeaderBlockWriter.class);
989: }
990: }
|