Package com.hazelcast.client.queue

Source Code of com.hazelcast.client.queue.ClientQueueDisruptionTest

package com.hazelcast.client.queue;

import com.hazelcast.client.HazelcastClient;
import com.hazelcast.client.config.ClientConfig;
import com.hazelcast.config.GroupConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.test.HazelcastSerialClassRunner;
import com.hazelcast.test.annotation.SlowTest;
import com.hazelcast.test.modularhelpers.SimpleClusterUtil;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;

import static junit.framework.TestCase.assertTrue;

@RunWith(HazelcastSerialClassRunner.class)
@Category(SlowTest.class)
public class ClientQueueDisruptionTest {

    HazelcastInstance client1;
    HazelcastInstance client2;

    SimpleClusterUtil cluster;

    @Before
    public void init() {
        cluster = new SimpleClusterUtil("A", 3);
        cluster.initCluster();

        ClientConfig clientConfig = new ClientConfig();
        clientConfig.setGroupConfig(new GroupConfig(cluster.getName()));
        client1 = HazelcastClient.newHazelcastClient(clientConfig);
        client2 = HazelcastClient.newHazelcastClient(clientConfig);
    }

    @After
    public void cleanup() {
        HazelcastClient.shutdownAll();
        Hazelcast.shutdownAll();
    }

    @Test
    public void clientsConsume_withNodeTerminate() throws InterruptedException {

        final int inital = 2000, max = 8000;

        for (int i = 0; i < inital; i++) {
            cluster.getRandomNode().getQueue("Q1").offer(i);
            cluster.getRandomNode().getQueue("Q2").offer(i);
        }

        int expect = 0;
        for (int i = inital; i < max; i++) {

            if (i == max / 2) {
                cluster.terminateRandomNode();
            }

            assertTrue(cluster.getRandomNode().getQueue("Q1").offer(i));
            assertTrue(cluster.getRandomNode().getQueue("Q2").offer(i));

            TestCase.assertEquals(expect, client1.getQueue("Q1").poll());
            TestCase.assertEquals(expect, client2.getQueue("Q2").poll());

            expect++;
        }

        for (int i = expect; i < max; i++) {
            TestCase.assertEquals(i, client1.getQueue("Q1").poll());
            TestCase.assertEquals(i, client2.getQueue("Q2").poll());
        }
    }
}
TOP

Related Classes of com.hazelcast.client.queue.ClientQueueDisruptionTest

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.