Package net.rubyeye.xmemcached.test.unittest.impl

Source Code of net.rubyeye.xmemcached.test.unittest.impl.MemcachedClientStateListenerUnitTest

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

import java.net.InetSocketAddress;
import java.util.List;
import java.util.Properties;

import com.google.code.yanf4j.util.ResourcesUtils;

import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.rubyeye.xmemcached.utils.AddrUtil;
import junit.framework.TestCase;

public class MemcachedClientStateListenerUnitTest extends TestCase {

  MemcachedClient memcachedClient;
  MockMemcachedClientStateListener listener;

  @Override
  protected void setUp() throws Exception {
    MemcachedClientBuilder builder = new XMemcachedClientBuilder();
    listener = new MockMemcachedClientStateListener();
    builder.addStateListener(listener);
    memcachedClient = builder.build();
  }

  public void testStarted() {
    assertEquals(1, listener.getNum());
  }

  public void testShutDown() throws Exception {
    memcachedClient.shutdown();
    assertEquals(2, listener.getNum());
  }

  public void testRemoveListener() throws Exception {
    assertEquals(1, listener.getNum());
    memcachedClient.removeStateListener(this.listener);
    assertEquals(0, memcachedClient.getStateListeners().size());
    memcachedClient.shutdown();
    assertEquals(1, listener.getNum());
  }

  public void testAddListener() {
    assertEquals(1, memcachedClient.getStateListeners().size());
    memcachedClient.addStateListener(listener);
    assertEquals(2, memcachedClient.getStateListeners().size());
    memcachedClient.addStateListener(listener);
    assertEquals(3, memcachedClient.getStateListeners().size());

    memcachedClient.removeStateListener(this.listener);
    assertEquals(0, memcachedClient.getStateListeners().size());
  }

  public void testConnected() throws Exception {
    Properties properties = ResourcesUtils
        .getResourceAsProperties("test.properties");
    String serversString = properties.getProperty("test.memcached.servers");
    List<InetSocketAddress> list = AddrUtil.getAddresses(serversString);
    memcachedClient.addServer(serversString);
    synchronized (this) {
      while (memcachedClient.getAvaliableServers().size() < list.size())
        wait(1000);
    }
    assertEquals(1 + memcachedClient.getAvaliableServers().size(), listener
        .getNum());
  }

  public void testDisconnected() throws Exception {
    Properties properties = ResourcesUtils
        .getResourceAsProperties("test.properties");
    String serversString = properties.getProperty("test.memcached.servers");
    List<InetSocketAddress> list = AddrUtil.getAddresses(serversString);
    memcachedClient.addServer(serversString);
    synchronized (this) {
      while (memcachedClient.getAvaliableServers().size() < list.size())
        wait(1000);
    }
    int serverCount = memcachedClient.getAvaliableServers().size();
    Thread.sleep(2000);
    memcachedClient.shutdown();
    synchronized (this) {
     
      while (memcachedClient.getAvaliableServers().size() > 0){
        //System.out.println(memcachedClient.getAvaliableServers().size());
        wait(1000);
      }
    }
    assertEquals(2 + 2 * serverCount, listener.getNum());
  }

  @Override
  protected void tearDown() throws Exception {
    memcachedClient.shutdown();
  }

}
TOP

Related Classes of net.rubyeye.xmemcached.test.unittest.impl.MemcachedClientStateListenerUnitTest

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.