blob: be0b581db8966d8fc3ac5667a0a6b25435dc49d5 [file] [log] [blame]
/*******************************************************************************
* 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());
}
}