package com.taobao.meta.test.spring;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.taobao.meta.test.BaseMetaTest;
import com.taobao.metamorphosis.client.extension.spring.MessageBuilder;
import com.taobao.metamorphosis.client.extension.spring.MetaqTemplate;
import com.taobao.metamorphosis.client.producer.SendResult;
public class SrpingAPITest extends BaseMetaTest {
@Test(timeout = 60000)
public void sendConsume() throws Exception {
this.createProducer();
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// use template to send messages.
final String topic = "meta-test";
MetaqTemplate template = (MetaqTemplate) context.getBean("metaqTemplate");
int count = 100;
for (int i = 0; i < count; i++) {
SendResult result =
template.send(MessageBuilder.withTopic(topic).withBody(new Trade(i, "test", i, "test")));
assertTrue(result.isSuccess());
}
TradeMessageListener listener = (TradeMessageListener) context.getBean("messageListener");
while (listener.counter.get() != count) {
Thread.sleep(100);
}
assertEquals(listener.counter.get(), count);
}
}