/* * #%L * Service Activity Monitoring :: Agent * %% * Copyright (C) 2011 - 2012 Talend Inc. * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ package org.talend.esb.sam.agent.eventproducer; import java.util.ArrayList; import java.util.List; import java.util.Queue; import javax.annotation.Resource; import org.junit.Assert; import org.junit.runner.RunWith; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.talend.esb.sam.common.event.Event; import org.talend.esb.sam.common.event.EventTypeEnum; import com.example.customerservice.CustomerService; @RunWith(SpringJUnit4ClassRunner.class) public abstract class AbstractEventProducerTest { @Resource protected CustomerService customerService; @Resource protected Queue<Event> queue; protected void checkEventsNum(List<Event> eventList, int expectedNum){ List<EventTypeEnum> eventTypeList = new ArrayList<EventTypeEnum>(); for (Event event : eventList) { eventTypeList.add(event.getEventType()); } Assert.assertEquals("The expected events num should be " + expectedNum + ". Actually events num is " + eventList.size() + " which are " + eventTypeList, expectedNum, eventList.size()); } protected void checkFlowIdPresentAndSame(List<Event> eventList) { String flowId = eventList.get(0).getMessageInfo().getFlowId(); for (Event event : eventList) { String newFlowId = event.getMessageInfo().getFlowId(); Assert.assertNotNull("FlowId should not be null in " + event.getEventType(), newFlowId); Assert.assertEquals("All flowIds should be the same", flowId, newFlowId); } } /** * check if the MessageId is present and same * @param eventList */ protected void checkMessageIdPresentAndSame(List<Event> eventList, boolean isOneway) { for (Event event : eventList) { String messageId = event.getMessageInfo().getMessageId(); Assert.assertNotNull("MessageId should not be null in " + event.getEventType(), messageId); } String messageId0 = eventList.get(0).getMessageInfo().getMessageId(); String messageId1 = eventList.get(1).getMessageInfo().getMessageId(); Assert.assertEquals("MessageId from REQ_OUT/REQ_IN should be the same", messageId0, messageId1); if (!isOneway){ String messageId2 = eventList.get(2).getMessageInfo().getMessageId(); String messageId3 = eventList.get(3).getMessageInfo().getMessageId(); Assert.assertEquals("MessageId from RESP_OUT/RESP_IN(FAULT_OUT/FAULT_IN) should be the same", messageId2, messageId3); } } protected void checkReq_Out(Event event) { Assert.assertEquals(EventTypeEnum.REQ_OUT, event.getEventType()); } protected void checkReq_In(Event event) { Assert.assertEquals(EventTypeEnum.REQ_IN, event.getEventType()); } protected void checkResp_Out(Event event) { Assert.assertEquals(EventTypeEnum.RESP_OUT, event.getEventType()); } protected void checkResp_In(Event event) { Assert.assertEquals(EventTypeEnum.RESP_IN, event.getEventType()); } protected void checkFault_Out(Event event) { Assert.assertEquals(EventTypeEnum.FAULT_OUT, event.getEventType()); Assert.assertTrue("Content should not be empty", (event.getContent() != null) && (event.getContent().length() >0)); } protected void checkFault_In(Event event) { Assert.assertEquals(EventTypeEnum.FAULT_IN, event.getEventType()); Assert.assertTrue("Content should not be empty", (event.getContent() != null) && (event.getContent().length() >0)); } protected void checkNonNullFields(List<Event> eventList){ for (Event event : eventList) { String operationName = event.getMessageInfo().getOperationName(); Assert.assertNotNull("operationName should not be null in " + event.getEventType(), operationName); } } }