new PathMatchingResourcePatternResolver(), dataSourceLookup);
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertEquals(2, info.length);
PersistenceUnitInfo pu1 = info[0];
assertEquals("pu1", pu1.getPersistenceUnitName());
assertEquals("com.acme.AcmePersistence", pu1.getPersistenceProviderClassName());
assertEquals(1, pu1.getMappingFileNames().size());
assertEquals("ormap2.xml", pu1.getMappingFileNames().get(0));
assertEquals(1, pu1.getJarFileUrls().size());
assertEquals(new ClassPathResource("order.jar").getURL(), pu1.getJarFileUrls().get(0));
assertFalse(pu1.excludeUnlistedClasses());
assertSame(PersistenceUnitTransactionType.RESOURCE_LOCAL, pu1.getTransactionType());
Properties props = pu1.getProperties();
assertEquals(2, props.keySet().size());
assertEquals("on", props.getProperty("com.acme.persistence.sql-logging"));
assertEquals("bar", props.getProperty("foo"));
assertNull(pu1.getNonJtaDataSource());
assertSame(ds, pu1.getJtaDataSource());
assertFalse("Exclude unlisted should default false in 1.0.", pu1.excludeUnlistedClasses());
PersistenceUnitInfo pu2 = info[1];
assertSame(PersistenceUnitTransactionType.JTA, pu2.getTransactionType());
assertEquals("com.acme.AcmePersistence", pu2.getPersistenceProviderClassName());
assertEquals(1, pu2.getMappingFileNames().size());
assertEquals("order2.xml", pu2.getMappingFileNames().get(0));
// the following assertions fail only during coverage runs
// assertEquals(1, pu2.getJarFileUrls().size());
// assertEquals(new ClassPathResource("order-supplemental.jar").getURL(), pu2.getJarFileUrls().get(0));
assertTrue(pu2.excludeUnlistedClasses());
assertNull(pu2.getJtaDataSource());
assertEquals(ds, pu2.getNonJtaDataSource());
assertTrue("Exclude unlisted should be true when no value.", pu2.excludeUnlistedClasses());
}