1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.directory.server.dhcp;
22
23
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.nio.ByteBuffer;
27
28 import junit.framework.TestCase;
29
30 import org.apache.directory.server.dhcp.messages.DhcpMessage;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33
34
35
36
37
38
39 public abstract class AbstractDhcpTestCase extends TestCase
40 {
41 protected static final int MINIMUM_DHCP_DATAGRAM_SIZE = 576;
42 protected final Logger log;
43
44
45 public AbstractDhcpTestCase()
46 {
47 log = LoggerFactory.getLogger( AbstractDhcpTestCase.class );
48 }
49
50
51 public AbstractDhcpTestCase(Class subclass)
52 {
53 log = LoggerFactory.getLogger( subclass );
54 }
55
56
57 protected void print( DhcpMessage message )
58 {
59 log.debug( String.valueOf( message.getMessageType() ) );
60 log.debug( String.valueOf( message.getHardwareAddress() ) );
61 log.debug( String.valueOf( message.getTransactionId() ) );
62 log.debug( String.valueOf( message.getSeconds() ) );
63 log.debug( String.valueOf( message.getFlags() ) );
64 log.debug( String.valueOf( message.getCurrentClientAddress() ) );
65 log.debug( String.valueOf( message.getAssignedClientAddress() ) );
66 log.debug( String.valueOf( message.getNextServerAddress() ) );
67 log.debug( String.valueOf( message.getRelayAgentAddress() ) );
68 log.debug( String.valueOf( message.getServerHostname() ) );
69 log.debug( String.valueOf( message.getBootFileName() ) );
70 }
71
72
73 protected ByteBuffer getByteBufferFromFile( String file ) throws IOException
74 {
75 InputStream is = getClass().getResourceAsStream( file );
76
77 byte[] bytes = new byte[MINIMUM_DHCP_DATAGRAM_SIZE];
78
79 int offset = 0;
80 int numRead = 0;
81 while ( offset < bytes.length && ( numRead = is.read( bytes, offset, bytes.length - offset ) ) >= 0 )
82 {
83 offset += numRead;
84 }
85
86 is.close();
87 return ByteBuffer.wrap( bytes );
88 }
89 }