BUG-50 : added tests for Keepalive/Close message.
[bgpcep.git] / pcep / impl / src / main / java / org / opendaylight / protocol / pcep / impl / message / PCEPKeepAliveMessageParser.java
index b0d20ab822962dd3c1b0b65e182531ce83f6e2c5..91ebd82b93966fcf4d51f92631515d05c0c83e60 100644 (file)
@@ -7,21 +7,42 @@
  */
 package org.opendaylight.protocol.pcep.impl.message;
 
-import org.opendaylight.protocol.pcep.impl.PCEPMessageParser;
-import org.opendaylight.protocol.pcep.message.PCEPKeepAliveMessage;
+import io.netty.buffer.ByteBuf;
+
+import org.opendaylight.protocol.pcep.impl.AbstractMessageParser;
+import org.opendaylight.protocol.pcep.spi.ObjectHandlerRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.message.rev131007.KeepaliveBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.KeepaliveMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Message;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.keepalive.message.KeepaliveMessageBuilder;
 
 /**
- * Parser for {@link org.opendaylight.protocol.pcep.message.PCEPKeepAliveMessage PCEPKeepAliveMessage}
+ * Parser for {@link KeepaliveMessage}
  */
-public class PCEPKeepAliveMessageParser implements PCEPMessageParser {
+public class PCEPKeepAliveMessageParser extends AbstractMessageParser {
+
+       public static final int TYPE = 2;
+
+       public PCEPKeepAliveMessageParser(final ObjectHandlerRegistry registry) {
+               super(registry);
+       }
 
        @Override
-       public byte[] put(final Message msg) {
-               if (!(msg instanceof PCEPKeepAliveMessage))
-                       throw new IllegalArgumentException("Wrong instance of PCEPMessage. Passed instance of " + msg.getClass()
-                                       + ". Nedded PCEPKeepAliveMessage.");
+       public void serializeMessage(final Message message, final ByteBuf buffer) {
+               if (!(message instanceof KeepaliveMessage)) {
+                       throw new IllegalArgumentException("Wrong instance of Message. Passed instance of " + message.getClass()
+                                       + ". Nedded KeepaliveMessage.");
+               }
+               buffer.writeBytes(new byte[0]);
+       }
 
-               return new byte[0];
+       @Override
+       public KeepaliveMessage parseMessage(final byte[] buffer) {
+               return new KeepaliveBuilder().setKeepaliveMessage(new KeepaliveMessageBuilder().build()).build();
+       }
+
+       @Override
+       public int getMessageType() {
+               return TYPE;
        }
 }