Package net.rubyeye.xmemcached.test.unittest.codec

Source Code of net.rubyeye.xmemcached.test.unittest.codec.MemcachedDecoderUnitTest

package net.rubyeye.xmemcached.test.unittest.codec;

import java.nio.ByteBuffer;
import java.util.concurrent.CountDownLatch;

import junit.framework.TestCase;
import net.rubyeye.xmemcached.codec.MemcachedCodecFactory;
import net.rubyeye.xmemcached.command.Command;
import net.rubyeye.xmemcached.command.TextCommandFactory;
import net.rubyeye.xmemcached.impl.MemcachedTCPSession;

import com.google.code.yanf4j.buffer.IoBuffer;
import com.google.code.yanf4j.core.CodecFactory.Decoder;
import com.google.code.yanf4j.core.impl.ByteBufferCodecFactory;
import com.google.code.yanf4j.core.impl.HandlerAdapter;
import com.google.code.yanf4j.nio.NioSessionConfig;

public class MemcachedDecoderUnitTest extends TestCase {
  private Decoder decoder;

  public void testDecode() {
    decoder = new MemcachedCodecFactory().getDecoder();
    MemcachedTCPSession session = buildSession();
    Command versionCommand = new TextCommandFactory().createVersionCommand(
        new CountDownLatch(1), null);
    session.addCommand(versionCommand);
    Command decodedCommand = (Command) decoder.decode(IoBuffer
        .wrap(ByteBuffer.wrap("VERSION 1.28\r\n".getBytes())), session);
    assertSame(decodedCommand, versionCommand);
    assertEquals("1.28", decodedCommand.getResult());
  }

  public MemcachedTCPSession buildSession() {
    NioSessionConfig sessionConfig = new NioSessionConfig(null,
        new HandlerAdapter(), null, new ByteBufferCodecFactory(), null,
        null, null, true, 0, 0);
    return new MemcachedTCPSession(sessionConfig, 16 * 1024, null, 0,
        new TextCommandFactory());
  }
}
TOP

Related Classes of net.rubyeye.xmemcached.test.unittest.codec.MemcachedDecoderUnitTest

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.