Source Code Cross Referenced for TestHeaderBlockWriter.java in  » Collaboration » poi-3.0.2-beta2 » org » apache » poi » poifs » storage » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Collaboration » poi 3.0.2 beta2 » org.apache.poi.poifs.storage 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


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:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.