@Test
public void validateBundle_invokesSubValidatorsInSequence() throws Exception {
Path bundlePath =
new ZipBuilder()
.addFileWithContent(ZipPath.create("BundleConfig.pb"), BUNDLE_CONFIG.toByteArray())
.addFileWithProtoContent(
ZipPath.create("moduleX/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleX")))
.addFileWithContent(ZipPath.create("moduleX/assets/file.txt"), DUMMY_CONTENT)
.addFileWithProtoContent(
ZipPath.create("moduleY/manifest/AndroidManifest.xml"),
androidManifest("com.test.app", withSplitId("moduleY")))
.addFileWithContent(ZipPath.create("moduleY/assets/file.txt"), DUMMY_CONTENT)
.writeTo(tempFolder.resolve("bundle.aab"));
AppBundle bundle = AppBundle.buildFromZip(new ZipFile(bundlePath.toFile()));
ImmutableList<BundleModule> bundleFeatureModules =
ImmutableList.copyOf(bundle.getFeatureModules().values());
new ValidatorRunner(ImmutableList.of(validator, validator2)).validateBundle(bundle);
InOrder order = Mockito.inOrder(validator, validator2);
order.verify(validator).validateBundle(eq(bundle));
order.verify(validator).validateAllModules(eq(bundleFeatureModules));
order.verify(validator).validateModule(anyObject());
order.verify(validator, atLeastOnce()).validateModuleFile(anyObject());
order.verify(validator2).validateBundle(eq(bundle));
order.verify(validator2).validateAllModules(eq(bundleFeatureModules));
order.verify(validator2).validateModule(anyObject());
order.verify(validator2, atLeastOnce()).validateModuleFile(anyObject());
order.verifyNoMoreInteractions();
}