parent
77f9bb09ca
commit
f92f019418
|
|
@ -25,18 +25,12 @@ import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.TemporaryFolder;
|
import org.junit.rules.TemporaryFolder;
|
||||||
import org.mockito.InOrder;
|
|
||||||
|
|
||||||
import org.springframework.boot.loader.TestJarCreator;
|
import org.springframework.boot.loader.TestJarCreator;
|
||||||
import org.springframework.boot.loader.data.RandomAccessData;
|
import org.springframework.boot.loader.data.RandomAccessData;
|
||||||
import org.springframework.boot.loader.data.RandomAccessDataFile;
|
import org.springframework.boot.loader.data.RandomAccessDataFile;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
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}.
|
* Tests for {@link CentralDirectoryParser}.
|
||||||
|
|
@ -61,16 +55,13 @@ public class CentralDirectoryParserTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void visitsInOrder() throws Exception {
|
public void visitsInOrder() throws Exception {
|
||||||
CentralDirectoryVisitor visitor = mock(CentralDirectoryVisitor.class);
|
MockCentralDirectoryVisitor visitor = new MockCentralDirectoryVisitor();
|
||||||
CentralDirectoryParser parser = new CentralDirectoryParser();
|
CentralDirectoryParser parser = new CentralDirectoryParser();
|
||||||
parser.addVisitor(visitor);
|
parser.addVisitor(visitor);
|
||||||
parser.parse(this.jarData, false);
|
parser.parse(this.jarData, false);
|
||||||
InOrder ordered = inOrder(visitor);
|
List<String> invocations = visitor.invocations;
|
||||||
ordered.verify(visitor).visitStart(any(CentralDirectoryEndRecord.class),
|
assertThat(invocations).startsWith("visitStart").endsWith("visitEnd")
|
||||||
any(RandomAccessData.class));
|
.contains("visitFileHeader");
|
||||||
ordered.verify(visitor, atLeastOnce())
|
|
||||||
.visitFileHeader(any(CentralDirectoryFileHeader.class), anyInt());
|
|
||||||
ordered.verify(visitor).visitEnd();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue