@Test public void illegalResourceQualifierThrowsException() { TypedResource<String> val1 = createStringTypedResource("en-v12"); resMap.put(resName, val1); try { resMap.pick(resName, from("nosuchqualifier")); fail("Expected exception to be caught"); } catch (IllegalArgumentException e) { assertThat(e).hasMessageThat().startsWith("Invalid qualifiers \"nosuchqualifier\""); } }
@Test public void onlyMatchingVersionsQualifiersWillBePicked() { TypedResource<String> val1 = createStringTypedResource("v16"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("sw600dp-v17"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v18")); assertThat(v).isEqualTo(val1); }
@Test public void greaterVersionsAreNotPickedReordered() { TypedResource<String> val1 = createStringTypedResource("v19"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("v11"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v18")); assertThat(v).isEqualTo(val2); }
public void put(ResName resName, TypedResource value) { valuesMap.put(resName, value); }
public void put(ResName resName, TypedResource value) { valuesMap.put(resName, value); }
public void put(ResName resName, TypedResource value) { valuesMap.put(resName, value); }
@Test public void greaterVersionsAreNotPickedMoreQualifiers() { // List the contradicting qualifier first, in case the algorithm has a tendency // to pick the first qualifier when none of the qualifiers are a "perfect" match. TypedResource<String> val1 = createStringTypedResource("anydpi-v21"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("xhdpi-v9"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v18")); assertThat(v).isEqualTo(val2); }
@Test public void bestValIsPickedForSdkVersion() { TypedResource<String> val1 = createStringTypedResource("v16"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("v17"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v26")); assertThat(v).isEqualTo(val2); }
@Test public void firstValIsPickedWhenNoMatch() { TypedResource<String> val1 = createStringTypedResource("en"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("fr"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("en-v18")); assertThat(v).isEqualTo(val1); }
private ResBundle.ResMap asResMap(String... qualifierses) { ResBundle.ResMap resMap = new ResBundle.ResMap(); for (String qualifiers : qualifierses) { resMap.put(resName, createStringTypedResource(qualifiers, qualifiers)); } return resMap; }
@Test public void eliminatedValuesAreNotPickedForVersion() { TypedResource<String> val1 = createStringTypedResource("land-v16"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("v17"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("land-v18")); assertThat(v).isEqualTo(val1); }
@Test public void closestMatchIsPicked() { TypedResource<String> val1 = createStringTypedResource("v16"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("v17"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v18")); assertThat(v).isEqualTo(val2); }
@Test public void greaterVersionsAreNotPicked() { TypedResource<String> val1 = createStringTypedResource("v11"); resMap.put(resName, val1); TypedResource<String> val2 = createStringTypedResource("v19"); resMap.put(resName, val2); TypedResource v = resMap.pick(resName, from("v18")); assertThat(v).isEqualTo(val1); }