Package com.taobao.metamorphosis.client.extension.spring

Source Code of com.taobao.metamorphosis.client.extension.spring.DefaultMessageListenerUnitTest$MyMessageListener

package com.taobao.metamorphosis.client.extension.spring;

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

import org.junit.Test;

import com.taobao.metamorphosis.Message;
import com.taobao.metamorphosis.MessageAccessor;
import com.taobao.metamorphosis.exception.MetaClientException;


public class DefaultMessageListenerUnitTest {

    private static class MyMessageListener extends DefaultMessageListener<String> {

        MetaqMessage<String> recvMsg;


        @Override
        public void onReceiveMessages(MetaqMessage<String> msg) {
            this.recvMsg = msg;

        }

    }


    @Test
    public void testOnReceiveMessagesWithConverter() throws Exception {
        MyMessageListener listener = new MyMessageListener();
        JavaSerializationMessageBodyConverter messageBodyConverter = new JavaSerializationMessageBodyConverter();
        listener.setMessageBodyConverter(messageBodyConverter);
        listener.afterPropertiesSet();
        Message message = new Message("test", messageBodyConverter.toByteArray("hello world"));
        listener.recieveMessages(message);

        assertNotNull(listener.recvMsg);
        assertEquals("hello world", listener.recvMsg.getBody());
        assertSame(message, listener.recvMsg.getRawMessage());

    }


    @Test
    public void testConvertMessageBodyFailure() throws Exception {
        MyMessageListener listener = new MyMessageListener();
        JavaSerializationMessageBodyConverter messageBodyConverter = new JavaSerializationMessageBodyConverter();
        listener.setMessageBodyConverter(new MessageBodyConverter<String>() {

            @Override
            public byte[] toByteArray(String body) throws MetaClientException {
                throw new RuntimeException();
            }


            @Override
            public String fromByteArray(byte[] bs) throws MetaClientException {
                throw new RuntimeException();
            }

        });
        listener.afterPropertiesSet();
        Message message = new Message("test", messageBodyConverter.toByteArray("hello world"));
        listener.recieveMessages(message);

        assertNull(listener.recvMsg);
        assertTrue(MessageAccessor.isRollbackOnly(message));
    }


    @Test
    public void testInitDestroy() throws Exception {
        MyMessageListener listener = new MyMessageListener();
        listener.setProcessThreads(10);
        assertNull(listener.getExecutor());
        listener.afterPropertiesSet();
        assertNotNull(listener.getExecutor());
        listener.destroy();
        assertNull(listener.getExecutor());
    }

    @Test
    public void testOnReceiveMessagesWithoutConverter() throws Exception {
        MyMessageListener listener = new MyMessageListener();
        JavaSerializationMessageBodyConverter messageBodyConverter = new JavaSerializationMessageBodyConverter();
        listener.afterPropertiesSet();
        Message message = new Message("test", messageBodyConverter.toByteArray("hello world"));
        listener.recieveMessages(message);

        assertNotNull(listener.recvMsg);
        assertNull(listener.recvMsg.getBody());
        assertSame(message, listener.recvMsg.getRawMessage());

    }
}
TOP

Related Classes of com.taobao.metamorphosis.client.extension.spring.DefaultMessageListenerUnitTest$MyMessageListener

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.