package ca.intelliware.ihtsdo.mlds.service.affiliatesimport;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import ca.intelliware.ihtsdo.mlds.service.affiliatesimport.AffiliatesImportGenerator.GeneratorContext;
@RunWith(MockitoJUnitRunner.class)
public class AffiliatesImportGeneratorTest {
private AffiliatesImportGenerator fixture;
private FieldMapping fieldMapping;
private GeneratorContext context;
@Before
public void setup() {
fixture = new AffiliatesImportGenerator();
fieldMapping = new FieldMapping(0, "column", Object.class, null, new ValueConverter());
context = new AffiliatesImportGenerator.GeneratorContext();
context.setSourceCountryKey("CA");
context.setSourceMemberKey("CA");
}
@Test
public void generateValueForBasicMappingShouldGenerateStringWithoutHintOnFirstRow() {
fieldMapping.columnName = "testColumn";
String value = fixture.generateValue(fieldMapping, 0, context);
assertEquals(value, "Example Test Column");
}
@Test
public void generateValueForBasicMappingShouldGenerateStringWithHint() {
fieldMapping.columnName = "testColumn";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "Example Test Column 1");
}
@Test
public void generateValueShouldOverideImportKeyToEnsureValuePresent() {
fieldMapping.columnName = "importKey";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "AFFILIATE-1");
}
@Test
public void generateValueShouldOverideMemberToBeConsistent() {
fieldMapping.columnName = "member";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "CA");
}
@Test
public void generateValueShouldOveridePrimaryCountryToBeConsistentWithMember() {
fieldMapping.columnName = "addressCountry";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "CA");
}
@Test
public void generateValueForEmail() {
fieldMapping.columnName = "someEmail";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "someEmail+1@email.com");
}
@Test
public void generateValueForStreet() {
fieldMapping.columnName = "someStreet";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "1 Some Street");
}
@Test
public void generateValueForCity() {
fieldMapping.columnName = "someCity";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "Jerup");
}
@Test
public void generateValueForPost() {
fieldMapping.columnName = "somePost";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "9108");
}
@Test
public void generateValueForTelephoneNumber() {
fieldMapping.columnName = "someNumber";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals("+1 416 709 0001", value);
}
@Test
public void generateValueForTelephoneExtension() {
fieldMapping.columnName = "someExtension";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals("707", value);
}
@Test
public void generateValueForFirstName() {
fieldMapping.columnName = "firstName";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "Lucas");
}
@Test
public void generateValueForLastName() {
fieldMapping.columnName = "lastName";
String value = fixture.generateValue(fieldMapping, 1, context);
assertEquals(value, "Nielsen 1");
}
}