/** * ============================================================================= * * ORCID (R) Open Source * http://orcid.org * * Copyright (c) 2012-2014 ORCID, Inc. * Licensed under an MIT-Style License (MIT) * http://orcid.org/open-source-license * * This copyright and license information (including a link to the full license) * shall be included in its entirety in all copies or substantial portion of * the software. * * ============================================================================= */ package org.orcid.cron; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.orcid.listener.persistence.entities.RecordStatusEntity; import org.orcid.listener.persistence.managers.RecordStatusManager; import org.orcid.test.TargetProxyHelper; import org.springframework.jms.core.JmsTemplate; import com.sun.jersey.api.client.Client; public class HandleFailedMessagesTest { @Mock private RecordStatusManager mock_manager; @Mock private JmsTemplate mock_jmsTemplate; @Mock private Client mock_client; private HandleFailedMessages h = new HandleFailedMessages(); @Before public void before() { MockitoAnnotations.initMocks(this); TargetProxyHelper.injectIntoProxy(h, "manager", mock_manager); TargetProxyHelper.injectIntoProxy(h, "jmsTemplate", mock_jmsTemplate); TargetProxyHelper.injectIntoProxy(h, "maxFailuresBeforeNotify", 3); List<RecordStatusEntity> elements = new ArrayList<RecordStatusEntity>(); for(int i = 0; i < 10; i++) { RecordStatusEntity r = new RecordStatusEntity(); r.setDateCreated(new Date()); r.setDumpStatus12Api(i); r.setDumpStatus20Api(0); r.setSolrStatus20Api(0); r.setId("0000-0000-0000-000" + i); elements.add(r); } when(mock_manager.getFailedElements(Matchers.anyInt())).thenReturn(elements); } @Test public void resendFailedElementsTest() { h.resendFailedElements(); verify(mock_jmsTemplate, times(9)).convertAndSend(Matchers.anyString(), Matchers.anyMapOf(String.class, String.class)); } }