Project

General

Profile

1
package eu.dnetlib.msro.openaireplus.workflows.nodes.dhp.message;
2

    
3
import static org.junit.Assert.assertEquals;
4
import static org.junit.Assert.assertTrue;
5

    
6
import org.junit.Before;
7
import org.junit.Test;
8

    
9
import eu.dnetlib.message.Message;
10
import eu.dnetlib.message.MessageType;
11
import eu.dnetlib.msro.rmi.MSROException;
12

    
13
public class DnetMessageManagerTest {
14

    
15
	private DnetMessageManager manager;
16

    
17
	@Before
18
	public void setUp() throws Exception {
19
		manager = new DnetMessageManager();
20
		manager.setMaxNumberOfOnGoingMessages(10);
21
		manager.setMaxNumberOfReports(100);
22
	}
23

    
24
	@Test
25
	public void testRegisterMessage_ongoing_multi_wfs() throws MSROException {
26
		for (long i = 0; i < manager.getMaxNumberOfOnGoingMessages(); i++) {
27
			manager.registerMessage(prepareMessage("wf-" + i, MessageType.ONGOING));
28
			assertTrue(manager.getOnGonginMessages().size() <= manager.getMaxNumberOfOnGoingMessages());
29
		}
30

    
31
		for (long i = manager.getMaxNumberOfOnGoingMessages(); i < 200; i++) {
32
			manager.registerMessage(prepareMessage("wf-" + i, MessageType.ONGOING));
33
			assertEquals(manager.getMaxNumberOfOnGoingMessages(), manager.getOnGonginMessages().size());
34
		}
35
	}
36

    
37
	@Test
38
	public void testRegisterMessage_ongoing_single_wf() throws MSROException {
39
		for (long i = 0; i < 100; i++) {
40
			manager.registerMessage(prepareMessage("wf-xxxx", MessageType.ONGOING));
41
			assertEquals(1, manager.getOnGonginMessages().size());
42
		}
43
	}
44

    
45
	@Test
46
	public void testRegisterMessage_reports_multi_wf() throws MSROException {
47
		for (long i = 0; i < manager.getMaxNumberOfReports(); i++) {
48
			manager.registerMessage(prepareMessage("wf-" + i, MessageType.REPORT));
49
			assertTrue(manager.getReports().size() <= manager.getMaxNumberOfReports());
50
		}
51

    
52
		for (long i = manager.getMaxNumberOfReports(); i < 200; i++) {
53
			manager.registerMessage(prepareMessage("wf-" + i, MessageType.REPORT));
54
			assertEquals(manager.getMaxNumberOfReports(), manager.getReports().size());
55
		}
56
	}
57

    
58
	@Test
59
	public void testRegisterMessage_reports_single_wf() throws MSROException {
60
		for (long i = 1; i < 100; i++) {
61
			manager.registerMessage(prepareMessage("wf-xxxx", MessageType.REPORT));
62
			assertEquals(1, manager.getReports().size());
63
			assertEquals(i, manager.getReports("wf-xxxx", false).size());
64
		}
65
	}
66

    
67
	@Test
68
	public void testRegisterMessage_reports_single_wf_delete() throws MSROException {
69
		for (long i = 1; i < 100; i++) {
70
			manager.registerMessage(prepareMessage("wf-xxxx", MessageType.REPORT));
71
			assertEquals(1, manager.getReports().size());
72
			assertEquals(1, manager.getReports("wf-xxxx", true).size());
73
			assertEquals(0, manager.getReports().size());
74
		}
75
	}
76

    
77
	private Message prepareMessage(final String wfId, final MessageType type) {
78
		final Message msg = new Message();
79
		msg.setWorkflowId(wfId);
80
		msg.setType(type);
81
		return msg;
82
	}
83

    
84
}
    (1-1/1)