| /******************************************************************************* |
| * Copyright (c) 2009, 2017 Mountainminds GmbH & Co. KG and Contributors |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Marc R. Hoffmann - initial API and implementation |
| * |
| *******************************************************************************/ |
| package org.jacoco.core.analysis; |
| |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.BRANCH; |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.CLASS; |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.COMPLEXITY; |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.INSTRUCTION; |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.LINE; |
| import static org.jacoco.core.analysis.ICoverageNode.CounterEntity.METHOD; |
| import static org.junit.Assert.assertEquals; |
| |
| import java.util.Arrays; |
| |
| import org.jacoco.core.analysis.ICoverageNode.ElementType; |
| import org.jacoco.core.internal.analysis.CounterImpl; |
| import org.junit.Test; |
| |
| /** |
| * Unit tests for {@link CoverageNodeImpl}. |
| */ |
| public class CoverageNodeImplTest { |
| |
| @Test |
| public void testProperties() { |
| ICoverageNode node = new CoverageNodeImpl(ElementType.GROUP, "sample"); |
| assertEquals(ElementType.GROUP, node.getElementType()); |
| assertEquals("sample", node.getName()); |
| } |
| |
| @Test |
| public void testInit() { |
| ICoverageNode node = new CoverageNodeImpl(ElementType.GROUP, "sample"); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getBranchCounter()); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getInstructionCounter()); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getLineCounter()); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getComplexityCounter()); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getMethodCounter()); |
| assertEquals(CounterImpl.COUNTER_0_0, node.getClassCounter()); |
| } |
| |
| @Test |
| public void testIncrement() { |
| CoverageNodeImpl parent = new CoverageNodeImpl(ElementType.GROUP, |
| "sample"); |
| ICoverageNode child = new CoverageNodeImpl(ElementType.GROUP, "sample") { |
| { |
| instructionCounter = CounterImpl.getInstance(1, 41); |
| branchCounter = CounterImpl.getInstance(10, 15); |
| lineCounter = CounterImpl.getInstance(5, 3); |
| complexityCounter = CounterImpl.getInstance(4, 2); |
| methodCounter = CounterImpl.getInstance(1, 21); |
| classCounter = CounterImpl.getInstance(1, 11); |
| } |
| }; |
| parent.increment(child); |
| assertEquals(CounterImpl.getInstance(1, 41), |
| parent.getCounter(INSTRUCTION)); |
| assertEquals(CounterImpl.getInstance(1, 41), |
| parent.getInstructionCounter()); |
| assertEquals(CounterImpl.getInstance(10, 15), parent.getCounter(BRANCH)); |
| assertEquals(CounterImpl.getInstance(10, 15), parent.getBranchCounter()); |
| assertEquals(CounterImpl.getInstance(5, 3), parent.getCounter(LINE)); |
| assertEquals(CounterImpl.getInstance(5, 3), parent.getLineCounter()); |
| assertEquals(CounterImpl.getInstance(4, 2), |
| parent.getCounter(COMPLEXITY)); |
| assertEquals(CounterImpl.getInstance(4, 2), |
| parent.getComplexityCounter()); |
| assertEquals(CounterImpl.getInstance(1, 21), parent.getCounter(METHOD)); |
| assertEquals(CounterImpl.getInstance(1, 21), parent.getMethodCounter()); |
| assertEquals(CounterImpl.getInstance(1, 11), parent.getCounter(CLASS)); |
| assertEquals(CounterImpl.getInstance(1, 11), parent.getClassCounter()); |
| } |
| |
| @Test |
| public void testIncrementCollection() { |
| CoverageNodeImpl parent = new CoverageNodeImpl(ElementType.GROUP, |
| "sample"); |
| ICoverageNode child1 = new CoverageNodeImpl(ElementType.GROUP, "sample") { |
| { |
| branchCounter = CounterImpl.getInstance(5, 2); |
| } |
| }; |
| ICoverageNode child2 = new CoverageNodeImpl(ElementType.GROUP, "sample") { |
| { |
| branchCounter = CounterImpl.getInstance(3, 3); |
| } |
| }; |
| parent.increment(Arrays.asList(child1, child2)); |
| assertEquals(CounterImpl.getInstance(8, 5), parent.getBranchCounter()); |
| } |
| |
| @Test |
| public void testGetPlainCopy() { |
| ICoverageNode node = new CoverageNodeImpl(ElementType.CLASS, "Sample") { |
| { |
| classCounter = CounterImpl.getInstance(1, 1); |
| methodCounter = CounterImpl.getInstance(2, 2); |
| branchCounter = CounterImpl.getInstance(3, 3); |
| instructionCounter = CounterImpl.getInstance(4, 4); |
| lineCounter = CounterImpl.getInstance(5, 5); |
| complexityCounter = CounterImpl.getInstance(6, 6); |
| } |
| }; |
| ICoverageNode copy = node.getPlainCopy(); |
| assertEquals(ElementType.CLASS, copy.getElementType()); |
| assertEquals("Sample", copy.getName()); |
| assertEquals(CounterImpl.getInstance(1, 1), copy.getClassCounter()); |
| assertEquals(CounterImpl.getInstance(2, 2), copy.getMethodCounter()); |
| assertEquals(CounterImpl.getInstance(3, 3), copy.getBranchCounter()); |
| assertEquals(CounterImpl.getInstance(4, 4), |
| copy.getInstructionCounter()); |
| assertEquals(CounterImpl.getInstance(5, 5), copy.getLineCounter()); |
| assertEquals(CounterImpl.getInstance(6, 6), copy.getComplexityCounter()); |
| } |
| |
| @Test |
| public void testToString() { |
| CoverageNodeImpl node = new CoverageNodeImpl(ElementType.CLASS, "Test"); |
| assertEquals("Test [CLASS]", node.toString()); |
| } |
| |
| } |