Skip to content

Package: SegmentGeneratorService_Test

SegmentGeneratorService_Test

nameinstructionbranchcomplexitylinemethod
SegmentGeneratorService_Test()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
dmrNull()
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
noApplicableGenerator()
M: 8 C: 19
70%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 3
60%
M: 0 C: 1
100%
setUp()
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
useBestGenerators()
M: 0 C: 133
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2018 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Lucas Koehler - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.internal.core.services.segments;
15:
16: import static org.junit.Assert.assertSame;
17: import static org.mockito.Matchers.any;
18: import static org.mockito.Mockito.mock;
19: import static org.mockito.Mockito.never;
20: import static org.mockito.Mockito.times;
21: import static org.mockito.Mockito.verify;
22: import static org.mockito.Mockito.when;
23:
24: import java.util.LinkedList;
25: import java.util.List;
26:
27: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
28: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
29: import org.eclipse.emfforms.spi.core.services.segments.DmrSegmentGenerator;
30: import org.junit.Before;
31: import org.junit.Test;
32:
33: /**
34: * Unit tests for {@link SegmentGeneratorService}.
35: *
36: * @author Lucas Koehler
37: *
38: */
39: public class SegmentGeneratorService_Test {
40:
41:         private SegmentGeneratorService service;
42:
43:         @Before
44:         public void setUp() {
45:                 service = new SegmentGeneratorService();
46:         }
47:
48:         @Test(expected = IllegalStateException.class)
49:         public void noApplicableGenerator() {
50:                 final DmrSegmentGenerator generator = mock(DmrSegmentGenerator.class);
51:                 when(generator.isApplicable(any(VDomainModelReference.class))).thenReturn(DmrSegmentGenerator.NOT_APPLICABLE);
52:
53:                 service.addDmrSegmentGenerator(generator);
54:                 service.generateSegments(mock(VDomainModelReference.class));
55:         }
56:
57:         @Test
58:         public void useBestGenerators() {
59:                 final DmrSegmentGenerator generator1 = mock(DmrSegmentGenerator.class);
60:                 when(generator1.isApplicable(any(VDomainModelReference.class))).thenReturn(1d);
61:                 final DmrSegmentGenerator generator2 = mock(DmrSegmentGenerator.class);
62:                 when(generator2.isApplicable(any(VDomainModelReference.class))).thenReturn(100d);
63:                 final DmrSegmentGenerator generator3 = mock(DmrSegmentGenerator.class);
64:                 when(generator3.isApplicable(any(VDomainModelReference.class))).thenReturn(5d);
65:
66:                 final List<VDomainModelReferenceSegment> list = new LinkedList<>();
67:                 when(generator2.generateSegments(any(VDomainModelReference.class))).thenReturn(list);
68:
69:                 service.addDmrSegmentGenerator(generator1);
70:                 service.addDmrSegmentGenerator(generator2);
71:                 service.addDmrSegmentGenerator(generator3);
72:
73:                 final VDomainModelReference dmr = mock(VDomainModelReference.class);
74:                 final List<VDomainModelReferenceSegment> result = service.generateSegments(dmr);
75:
76:                 // Verify that the correct generator was used and its result returned and verify that all generators were
77:                 // considered
78:                 assertSame(list, result);
79:                 verify(generator1, times(1)).isApplicable(dmr);
80:                 verify(generator2, times(1)).isApplicable(dmr);
81:                 verify(generator3, times(1)).isApplicable(dmr);
82:                 verify(generator1, never()).generateSegments(any(VDomainModelReference.class));
83:                 verify(generator2, times(1)).generateSegments(dmr);
84:                 verify(generator3, never()).generateSegments(any(VDomainModelReference.class));
85:         }
86:
87:         @Test(expected = IllegalArgumentException.class)
88:         public void dmrNull() {
89:                 service.generateSegments(null);
90:         }
91: }