package com.constellio.model.entities.structures;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.sdk.tests.ConstellioTest;
public class EmailAddressFactoryTest extends ConstellioTest {
EmailAddressFactory factory;
String name = "Chuck Norris";
String email = "chuck@gmail.com";
@Before
public void setUp()
throws Exception {
factory = new EmailAddressFactory();
}
@Test
public void whenSetAttributeValueThenBecomeDirty() {
EmailAddress emailAddress = new EmailAddress();
assertThat(emailAddress.isDirty()).isFalse();
emailAddress = new EmailAddress();
emailAddress.setEmail(email);
assertThat(emailAddress.isDirty()).isTrue();
emailAddress = new EmailAddress();
emailAddress.setName(name);
assertThat(emailAddress.isDirty()).isTrue();
}
@Test
public void whenConvertingStructureWithAllValuesThenRemainsEqual()
throws Exception {
EmailAddress emailAddress = new EmailAddress();
emailAddress.setName(name);
emailAddress.setEmail(email);
String stringValue = factory.toString(emailAddress);
EmailAddress builtEmailAddress = (EmailAddress) factory.build(stringValue);
String stringValue2 = factory.toString(builtEmailAddress);
assertThat(builtEmailAddress).isEqualTo(emailAddress);
assertThat(stringValue2).isEqualTo(stringValue);
assertThat(builtEmailAddress.isDirty()).isFalse();
assertThat(builtEmailAddress.getEmail()).isEqualTo(email);
}
@Test
public void whenConvertingStructureWithNullValuesThenRemainsEqual()
throws Exception {
EmailAddress emailAddress = new EmailAddress();
emailAddress.setName(null);
emailAddress.setEmail(null);
String stringValue = factory.toString(emailAddress);
EmailAddress builtEmailAddress = (EmailAddress) factory.build(stringValue);
String stringValue2 = factory.toString(builtEmailAddress);
assertThat(builtEmailAddress).isEqualTo(emailAddress);
assertThat(stringValue2).isEqualTo(stringValue);
assertThat(builtEmailAddress.isDirty()).isFalse();
assertThat(builtEmailAddress.getEmail()).isNull();
}
@Test
public void whenConvertingStructureWithoutSetValuesThenRemainsEqual()
throws Exception {
EmailAddress emailAddress = new EmailAddress();
String stringValue = factory.toString(emailAddress);
EmailAddress builtEmailAddress = (EmailAddress) factory.build(stringValue);
String stringValue2 = factory.toString(builtEmailAddress);
assertThat(builtEmailAddress).isEqualTo(emailAddress);
assertThat(stringValue2).isEqualTo(stringValue);
assertThat(builtEmailAddress.isDirty()).isFalse();
assertThat(builtEmailAddress.getEmail()).isNull();
}
@Test
public void whenToAddressThenOk()
throws Exception {
EmailAddress emailAddress = new EmailAddress(name, email);
String stringValue = factory.toAddress(emailAddress);
assertThat(stringValue).isEqualTo(name + " <" + email + ">");
}
}