package eu.dnetlib.iis.wf.affmatching.orgalternativenames;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import java.util.List;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import eu.dnetlib.iis.wf.affmatching.model.AffMatchOrganization;
/**
* @author madryk
*/
public class AffMatchOrganizationAltNameFillerTest {
private AffMatchOrganizationAltNameFiller altNameFiller = new AffMatchOrganizationAltNameFiller();
private List<Set<String>> altNamesDictionary = Lists.newArrayList();
private AffMatchOrganization organization = new AffMatchOrganization("ORG_ID");
@Before
public void setup() {
altNamesDictionary.add(ImmutableSet.of("Uniwersytet im. Adama Mickiewicza w Poznaniu", "Adam Mickiewicz University in Poznań", "Adam Mickiewicz University"));
altNamesDictionary.add(ImmutableSet.of("Univerzita Karlova v Praze", "Charles University in Prague"));
altNameFiller.setAlternativeNamesDictionary(altNamesDictionary);
}
//------------------------ TESTS --------------------------
@Test
public void fillAlternativeNames_BASED_ON_NAME() {
// given
organization.setName("Uniwersytet im. Adama Mickiewicza w Poznaniu");
// execute
AffMatchOrganization retOrganization = altNameFiller.fillAlternativeNames(organization);
// assert
assertThat(retOrganization.getAlternativeNames(), containsInAnyOrder(
"Adam Mickiewicz University in Poznań", "Adam Mickiewicz University"));
}
@Test
public void fillAlternativeNames_BASED_ON_ORIGINAL_ALTERNATIVE_NAME() {
// given
organization.setName("UAM");
organization.addAlternativeName("Adam Mickiewicz University");
// execute
AffMatchOrganization retOrganization = altNameFiller.fillAlternativeNames(organization);
// assert
assertThat(retOrganization.getAlternativeNames(), containsInAnyOrder(
"Uniwersytet im. Adama Mickiewicza w Poznaniu", "Adam Mickiewicz University in Poznań", "Adam Mickiewicz University"));
}
@Test
public void fillAlternativeNames_KEEP_ORIGINAL_ALTERNATIVE_NAME() {
// given
organization.setName("Univerzita Karlova v Praze");
organization.addAlternativeName("Charles University");
// execute
AffMatchOrganization retOrganization = altNameFiller.fillAlternativeNames(organization);
// assert
assertThat(retOrganization.getAlternativeNames(), containsInAnyOrder(
"Charles University", "Charles University in Prague"));
}
@Test
public void fillAlternativeNames_ALTERNATIVE_NAMES_NOT_FOUND() {
// given
organization.setName("Uniwersytet Jagielloński");
organization.addAlternativeName("Jagiellonian University");
// execute
AffMatchOrganization retOrganization = altNameFiller.fillAlternativeNames(organization);
// assert
assertThat(retOrganization.getAlternativeNames(), containsInAnyOrder("Jagiellonian University"));
}
}