package ru.hflabs.rcd.service;
import org.testng.annotations.Test;
import ru.hflabs.rcd.model.document.MetaField;
import static org.testng.Assert.*;
import static ru.hflabs.rcd.model.MockFactory.createMockMetaField;
@Test
public class MergeServicesTest {
public void testMergeService() {
MetaField newMetaField = createMockMetaField(null);
newMetaField.establishFlags(MetaField.FLAG_PRIMARY);
MetaField oldMetaField = createMockMetaField(null);
oldMetaField.establishFlags(MetaField.FLAG_UNIQUE);
IMergeService.Single<MetaField> service = MergeServices.chain(
MergeServices.<MetaField>copyId(),
MergeServices.<MetaField>copyName(),
new MergeServices.MetaFieldFlagsMergeService()
);
MetaField result = service.merge(newMetaField, oldMetaField);
assertNotNull(result);
assertNotEquals(result, oldMetaField);
assertEquals(result.getId(), oldMetaField.getId());
assertEquals(result.getName(), oldMetaField.getName());
assertEquals(result.getFlags(), oldMetaField.getFlags());
assertNotEquals(result.getDescription(), oldMetaField.getDescription());
}
}