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 MapStringStringStructureFactoryTest extends ConstellioTest {
MapStringStringStructureFactory factory;
@Before
public void setUp()
throws Exception {
factory = new MapStringStringStructureFactory();
}
@Test
public void whenSetAttributeValueThenBecomeDirty() {
MapStringStringStructure mapStringStringStructure = new MapStringStringStructure();
assertThat(mapStringStringStructure.isDirty()).isFalse();
mapStringStringStructure = new MapStringStringStructure();
mapStringStringStructure.put("key1", "value1");
assertThat(mapStringStringStructure.isDirty()).isTrue();
}
@Test
public void whenConvertingStructureWithAllValuesThenRemainsEqual()
throws Exception {
MapStringStringStructure mapStringStringStructure = new MapStringStringStructure();
mapStringStringStructure.put("key1", "value1");
mapStringStringStructure.put("key2", "value2");
mapStringStringStructure.put("key3", "value3");
mapStringStringStructure.put("key3", "value4");
String stringValue = factory.toString(mapStringStringStructure);
MapStringStringStructure builtMapStringStringStructure = (MapStringStringStructure) factory.build(stringValue);
String stringValue2 = factory.toString(builtMapStringStringStructure);
assertThat(builtMapStringStringStructure).isEqualTo(mapStringStringStructure);
assertThat(stringValue2).isEqualTo(stringValue);
assertThat(builtMapStringStringStructure.isDirty()).isFalse();
assertThat(builtMapStringStringStructure).hasSize(3);
assertThat(builtMapStringStringStructure.get("key1")).isEqualTo("value1");
assertThat(builtMapStringStringStructure.get("key2")).isEqualTo("value2");
assertThat(builtMapStringStringStructure.get("key3")).isEqualTo("value4");
}
@Test
public void whenConvertingStructureWithoutSetValuesThenRemainsEqual()
throws Exception {
MapStringStringStructure mapStringStringStructure = new MapStringStringStructure();
String stringValue = factory.toString(mapStringStringStructure);
MapStringStringStructure builtMapStringStringStructure = (MapStringStringStructure) factory.build(stringValue);
String stringValue2 = factory.toString(builtMapStringStringStructure);
assertThat(builtMapStringStringStructure).isEqualTo(mapStringStringStructure);
assertThat(stringValue2).isEqualTo(stringValue);
assertThat(builtMapStringStringStructure.isDirty()).isFalse();
assertThat(builtMapStringStringStructure).isEmpty();
}
}