package org.pitest.coverage.codeassist;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.objectweb.asm.ClassWriter;
import org.pitest.coverage.CoverageClassVisitor;
import sun.pitest.CodeCoverageStore;
import sun.pitest.InvokeReceiver;
public class CoverageClassVisitorTest {
private CoverageClassVisitor testee;
private int classId;
@Mock
private ClassWriter w;
@Mock
private InvokeReceiver invokeQueue;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
CodeCoverageStore.init(this.invokeQueue);
CodeCoverageStore.reset();
this.classId = CodeCoverageStore.registerClass("foo");
this.testee = new CoverageClassVisitor(this.classId, this.w);
}
@Test
public void shouldRegisterProbesWithCodeCoverageStore() {
this.testee.registerProbes(6);
this.testee.visitEnd();
CodeCoverageStore.visitProbes(this.classId, 0, new boolean[] { false,
false, true, false, false, false, false });
assertEquals(Arrays.asList(CodeCoverageStore.encode(this.classId, 2)),
CodeCoverageStore.getHits());
}
}