package ru.hflabs.rcd.lucene.binder; import org.apache.lucene.document.Document; import org.apache.lucene.index.Term; import org.testng.annotations.Test; import ru.hflabs.rcd.model.task.TaskDescriptor; import ru.hflabs.util.lucene.LuceneBinderTransformer; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static ru.hflabs.rcd.model.MockFactory.createMockTaskDescriptor; public class TaskDescriptorBinderTransformerTest extends BinderTransformerTest<TaskDescriptor> { public TaskDescriptorBinderTransformerTest() { super(TaskDescriptor.class); } private static void assertTaskDescriptor(TaskDescriptor actual, TaskDescriptor expected) { assertDocumentTemplate(actual, expected); assertNamed(actual, expected); assertEquals(actual.getDescription(), expected.getDescription()); assertEquals(actual.getCron(), expected.getCron()); assertEquals(actual.getParameters(), expected.getParameters()); } @Test(dependsOnMethods = "testReverseConvert") public void testConvert() { TaskDescriptor taskDescriptor = createMockTaskDescriptor(); Document document = binderTransformer.reverseConvert(taskDescriptor); TaskDescriptor result = binderTransformer.convert(document); assertNotNull(result); assertTaskDescriptor(result, taskDescriptor); assertEquals(binderTransformer.getPrimaryKey(document), taskDescriptor.getId()); } @Test public void testReverseConvert() { TaskDescriptor taskDescriptor = createMockTaskDescriptor(); Document document = binderTransformer.reverseConvert(taskDescriptor); assertNotNull(document); { assertEquals(document.getFields().size(), 6 + 2); assertEquals(document.getField(TaskDescriptor.PRIMARY_KEY).stringValue(), taskDescriptor.getId()); assertEquals(document.getField(TaskDescriptor.HISTORY_ID).stringValue(), taskDescriptor.getHistoryId()); assertEquals(document.getField(TaskDescriptor.CHANGE_TYPE).stringValue(), taskDescriptor.getHistory().getEventType().name()); assertNotNull(document.getField(TaskDescriptor.CHANGE_DATE).stringValue()); assertEquals(document.getField(TaskDescriptor.NAME).stringValue(), taskDescriptor.getName()); assertEquals(document.getField(TaskDescriptor.CRON).stringValue(), taskDescriptor.getCron()); assertNotNull(document.getField(LuceneBinderTransformer.OBJECT_FIELD)); assertNotNull(document.getField(LuceneBinderTransformer.DEFAULT_SEARCH_FIELD)); } Term primaryTerm = binderTransformer.getPrimaryKey(taskDescriptor); assertNotNull(primaryTerm); { assertEquals(primaryTerm.field(), TaskDescriptor.PRIMARY_KEY); assertEquals(primaryTerm.text(), taskDescriptor.getId()); } } }