@Test public void testSatisfiesLooseShouldSuccess1() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=25.3.1"); final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); Assert.assertTrue(satisfies.success); }
@Test public void testSatisfiesLooseShouldSuccess2() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=25"); final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); Assert.assertTrue(satisfies.success); }
@Test public void testSatisfiesStrictShouldSuccess1() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", "25.3.1"); Assert.assertTrue(VersionVerifier.satisfies(mVersions, requirements).success); }
@Test public void testSatisfiesLooseShouldSuccess3() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=24"); final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); Assert.assertTrue(satisfies.success); }
@Test public void testSatisfiesStrictShouldSuccess2() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); Assert.assertTrue(VersionVerifier.satisfies(mVersions, requirements).success); }
@Test public void testSatisfiesStrictShouldFail2() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", "25.3.1"); // this lib is missing requirements.put("com.android.support:appcompat-v7", "25.3.1"); final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); System.out.println(satisfies); Assert.assertFalse(satisfies.success); Assert.assertEquals("com.android.support:appcompat-v7", satisfies.lib); }
@Test public void testSatisfiesLooseShouldFail3() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=25"); requirements.put("com.android.support:appcompat-v7", ">=25"); // lib not exist final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); System.out.println(satisfies); Assert.assertFalse(satisfies.success); Assert.assertEquals("com.android.support:appcompat-v7", satisfies.lib); } }
@Test public void testSatisfiesLooseShouldFail2() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=25.3.2"); // version not satisfies final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); System.out.println(satisfies); Assert.assertFalse(satisfies.success); Assert.assertEquals("com.android.support:support-v4", satisfies.lib); }
@Test public void testSatisfiesStrictShouldFail1() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); // version mismatch requirements.put("com.android.support:support-v4", "25.3.0"); final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); System.out.println(satisfies); Assert.assertFalse(satisfies.success); Assert.assertEquals("com.android.support:support-v4", satisfies.lib); }
@Test public void testSatisfiesLooseShouldFail1() throws Exception { Map<String, String> requirements = new HashMap<>(); requirements.put("junit:junit", "4.12"); requirements.put("com.android.support:support-v4", ">=26"); // version not satisfies final VersionVerifier.Result satisfies = VersionVerifier.satisfies(mVersions, requirements); System.out.println(satisfies); Assert.assertFalse(satisfies.success); Assert.assertEquals("com.android.support:support-v4", satisfies.lib); }
private CheckSharedLibraryDependenciesResult checkSharedLibraryDependencies(String apkPath, AssetManager assetManager) throws ParseProvidedDependenciesException { final Map<String, String> pluginProvidedDependencies = parsePluginProvidedDependencies(apkPath, assetManager); final Map<String, String> hostCompileDependencies = getHostCompileDependencyMap(); final VersionVerifier.Result result = VersionVerifier.satisfies(hostCompileDependencies, pluginProvidedDependencies); if (!result.success) { final String msg = "error shared library dependencies mismatch: " + apkPath + ", " + result.message; VLog.w(msg); VLog.w("hostCompileDependencies: %s", hostCompileDependencies); VLog.w("pluginProvidedDependencies: %s", pluginProvidedDependencies); return new CheckSharedLibraryDependenciesResult(false, msg, hostCompileDependencies, pluginProvidedDependencies); } else { return new CheckSharedLibraryDependenciesResult(true, "ok", hostCompileDependencies, pluginProvidedDependencies); } }