Don't mock package private class

See gh-7770
This commit is contained in:
Phillip Webb 2017-01-05 14:39:22 -08:00
parent 77f9bb09ca
commit f92f019418
1 changed files with 31 additions and 13 deletions

View File

@ -25,18 +25,12 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.mockito.InOrder;
import org.springframework.boot.loader.TestJarCreator;
import org.springframework.boot.loader.data.RandomAccessData;
import org.springframework.boot.loader.data.RandomAccessDataFile;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
/**
* Tests for {@link CentralDirectoryParser}.
@ -61,16 +55,13 @@ public class CentralDirectoryParserTests {
@Test
public void visitsInOrder() throws Exception {
CentralDirectoryVisitor visitor = mock(CentralDirectoryVisitor.class);
MockCentralDirectoryVisitor visitor = new MockCentralDirectoryVisitor();
CentralDirectoryParser parser = new CentralDirectoryParser();
parser.addVisitor(visitor);
parser.parse(this.jarData, false);
InOrder ordered = inOrder(visitor);
ordered.verify(visitor).visitStart(any(CentralDirectoryEndRecord.class),
any(RandomAccessData.class));
ordered.verify(visitor, atLeastOnce())
.visitFileHeader(any(CentralDirectoryFileHeader.class), anyInt());
ordered.verify(visitor).visitEnd();
List<String> invocations = visitor.invocations;
assertThat(invocations).startsWith("visitStart").endsWith("visitEnd")
.contains("visitFileHeader");
}
@Test
@ -118,4 +109,31 @@ public class CentralDirectoryParserTests {
}
private static class MockCentralDirectoryVisitor implements CentralDirectoryVisitor {
private final List<String> invocations = new ArrayList<String>();
@Override
public void visitStart(CentralDirectoryEndRecord endRecord,
RandomAccessData centralDirectoryData) {
this.invocations.add("visitStart");
}
@Override
public void visitFileHeader(CentralDirectoryFileHeader fileHeader,
int dataOffset) {
this.invocations.add("visitFileHeader");
}
@Override
public void visitEnd() {
this.invocations.add("visitEnd");
}
public List<String> getInvocations() {
return this.invocations;
}
}
}