1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.server.ntp;
21
22
23 import java.nio.ByteBuffer;
24
25 import junit.framework.TestCase;
26
27 import org.apache.directory.server.ntp.io.NtpMessageDecoder;
28 import org.apache.directory.server.ntp.io.NtpMessageEncoder;
29 import org.apache.directory.server.ntp.messages.LeapIndicatorType;
30 import org.apache.directory.server.ntp.messages.ModeType;
31 import org.apache.directory.server.ntp.messages.NtpMessage;
32 import org.apache.directory.server.ntp.messages.NtpMessageModifier;
33 import org.apache.directory.server.ntp.messages.NtpTimeStamp;
34 import org.apache.directory.server.ntp.messages.ReferenceIdentifier;
35 import org.apache.directory.server.ntp.messages.StratumType;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38
39
40
41
42
43
44 public class NtpMessageEncoderTest extends TestCase
45 {
46
47 private static final Logger log = LoggerFactory.getLogger( NtpMessageEncoderTest.class );
48
49
50
51
52
53
54
55 public void testEncodeMessage() throws Exception
56 {
57 NtpMessageModifier modifier = new NtpMessageModifier();
58 modifier.setLeapIndicator( LeapIndicatorType.NO_WARNING );
59 modifier.setVersionNumber( 4 );
60 modifier.setMode( ModeType.SERVER );
61 modifier.setStratum( StratumType.PRIMARY_REFERENCE );
62 modifier.setPollInterval( ( byte ) 0x06 );
63 modifier.setPrecision( ( byte ) 0xFA );
64 modifier.setRootDelay( 0 );
65 modifier.setRootDispersion( 0 );
66 modifier.setReferenceIdentifier( ReferenceIdentifier.LOCL );
67
68 NtpTimeStamp now = new NtpTimeStamp();
69
70 modifier.setReferenceTimestamp( now );
71 modifier.setOriginateTimestamp( now );
72 modifier.setReceiveTimestamp( now );
73 modifier.setTransmitTimestamp( now );
74
75 NtpMessage message = modifier.getNtpMessage();
76
77 ByteBuffer replyByteBuffer = ByteBuffer.allocate( 1024 );
78
79 NtpMessageEncoder encoder = new NtpMessageEncoder();
80 encoder.encode( replyByteBuffer, message );
81
82 print( message );
83
84 NtpMessageDecoder decoder = new NtpMessageDecoder();
85 NtpMessage reply = decoder.decode( replyByteBuffer );
86
87 print( reply );
88 }
89
90
91 protected void print( NtpMessage request )
92 {
93 log.debug( String.valueOf( request.getLeapIndicator() ) );
94 log.debug( String.valueOf( request.getVersionNumber() ) );
95 log.debug( String.valueOf( request.getMode() ) );
96 log.debug( String.valueOf( request.getStratum() ) );
97 log.debug( String.valueOf( request.getPollInterval() ) );
98 log.debug( String.valueOf( request.getPrecision() ) );
99 log.debug( String.valueOf( request.getRootDelay() ) );
100 log.debug( String.valueOf( request.getRootDispersion() ) );
101 log.debug( String.valueOf( request.getReferenceIdentifier() ) );
102 log.debug( String.valueOf( request.getReferenceTimestamp() ) );
103 log.debug( String.valueOf( request.getOriginateTimestamp() ) );
104 log.debug( String.valueOf( request.getReceiveTimestamp() ) );
105 log.debug( String.valueOf( request.getTransmitTimestamp() ) );
106 }
107 }