Package org.menacheri.jetserver.protocols.impl

Source Code of org.menacheri.jetserver.protocols.impl.AMF3StringProtocolTest

package org.menacheri.jetserver.protocols.impl;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;

import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.handler.codec.base64.Base64Decoder;
import org.jboss.netty.handler.codec.base64.Base64Encoder;
import org.jboss.netty.handler.codec.embedder.DecoderEmbedder;
import org.jboss.netty.handler.codec.embedder.EncoderEmbedder;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters;
import org.junit.Before;
import org.junit.Test;
import org.menacheri.jetserver.communication.NettyMessageBuffer;
import org.menacheri.jetserver.event.Events;
import org.menacheri.jetserver.event.Event;
import org.menacheri.jetserver.handlers.netty.AMF3ToJavaObjectDecoder;
import org.menacheri.jetserver.handlers.netty.JavaObjectToAMF3Encoder;
import org.menacheri.jetserver.handlers.netty.NulEncoder;
import org.menacheri.jetserver.protocols.impl.AMF3StringProtocol;

public class AMF3StringProtocolTest {

  private AMF3StringProtocol amf3StringProtocol;
  private DelimiterBasedFrameDecoder delimiterDecoder;
  @Before
  public void setUp()
  {
    amf3StringProtocol = new AMF3StringProtocol();
    amf3StringProtocol.setMaxFrameSize(1024);
    delimiterDecoder = new DelimiterBasedFrameDecoder(amf3StringProtocol.getMaxFrameSize(),
        Delimiters.nulDelimiter());
    amf3StringProtocol.setBase64Decoder(new Base64Decoder());
    amf3StringProtocol.setAmf3ToJavaObjectDecoder(new AMF3ToJavaObjectDecoder());
    amf3StringProtocol.setNulEncoder(new NulEncoder());
    amf3StringProtocol.setBase64Encoder(new Base64Encoder());
    amf3StringProtocol.setJavaObjectToAMF3Encoder(new JavaObjectToAMF3Encoder());
  }
 
  @Test
  public void verifyAMF3StringEncodingAndDecoding() throws InterruptedException
  {
    DecoderEmbedder<Event> decoder = new DecoderEmbedder<Event>(
        delimiterDecoder, amf3StringProtocol.getBase64Decoder(),
        amf3StringProtocol.getAmf3ToJavaObjectDecoder());
   
    EncoderEmbedder<ChannelBuffer> encoder = new EncoderEmbedder<ChannelBuffer>(
        amf3StringProtocol.getNulEncoder(),
        amf3StringProtocol.getBase64Encoder(),
        amf3StringProtocol.getJavaObjectToAMF3Encoder());
   
    NettyMessageBuffer payload = new NettyMessageBuffer();
    payload.writeStrings("user","pass","TestRoom1");
   
    Event event = Events.event(payload, Events.LOG_IN);
    encoder.offer(event);
    ChannelBuffer encoded = encoder.peek();
   
    Thread.sleep(10);// despite delay the timestamps should be same since we are decoding the whole object.
    decoder.offer(encoded);
    Event decoded = decoder.peek();
    assertEquals(decoded.getType(),Events.LOG_IN);
    assertTrue("Timestamps should be same" ,decoded.getTimeStamp() == event.getTimeStamp());
    NettyMessageBuffer decodedPayload = (NettyMessageBuffer)decoded.getSource();
    // NettyMessageBuffer will not get de-serialized properly.
    assertNull(decodedPayload.readString());
  }
}
TOP

Related Classes of org.menacheri.jetserver.protocols.impl.AMF3StringProtocolTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.