package ru.hflabs.rcd.service; import org.testng.annotations.Test; import ru.hflabs.rcd.ServiceTest; import ru.hflabs.rcd.model.definition.ModelDefinition; import ru.hflabs.rcd.model.definition.ModelFieldDefinition; import ru.hflabs.rcd.model.document.Dictionary; import ru.hflabs.rcd.model.document.Group; import ru.hflabs.rcd.model.document.MetaField; import javax.annotation.Resource; import java.util.Map; import static org.testng.Assert.*; @Test public class ModelDefinitionFactoryTest extends ServiceTest { /** Фабрика создения моделей */ @Resource(name = "modelDefinitionFactory") private IServiceFactory<ModelDefinition, Class<?>> factory; public void testGroup() { ModelDefinition modelDefinition = factory.retrieveService(Group.class); assertNotNull(modelDefinition); assertEquals(modelDefinition.getId(), "Group"); Map<String, ModelFieldDefinition> fields = modelDefinition.getFields(); assertNotNull(fields); assertEquals(fields.size(), 6); // check name { ModelFieldDefinition modelFieldDefinition = fields.get(Group.NAME); assertNotNull(modelFieldDefinition); assertEquals(modelFieldDefinition.getType(), ModelFieldDefinition.FieldType.STRING); assertEquals(modelFieldDefinition.getMinLength(), new Long(Group.NAME_MIN_SIZE)); assertEquals(modelFieldDefinition.getMaxLength(), new Long(Group.NAME_MAX_SIZE)); assertTrue(modelFieldDefinition.isRequired()); assertNull(modelFieldDefinition.getPattern()); assertTrue(modelFieldDefinition.isSortable()); } // check description { ModelFieldDefinition modelFieldDefinition = fields.get(Group.DESCRIPTION); assertNotNull(modelFieldDefinition); assertEquals(modelFieldDefinition.getType(), ModelFieldDefinition.FieldType.STRING); assertEquals(modelFieldDefinition.getMinLength(), new Long(0L)); assertEquals(modelFieldDefinition.getMaxLength(), new Long(Group.DESCRIPTION_SIZE)); assertFalse(modelFieldDefinition.isRequired()); assertNull(modelFieldDefinition.getPattern()); assertTrue(modelFieldDefinition.isSortable()); } // check permissions { ModelFieldDefinition modelFieldDefinition = fields.get(Group.PERMISSIONS); assertNotNull(modelFieldDefinition); assertEquals(modelFieldDefinition.getType(), ModelFieldDefinition.FieldType.NUMBER); assertFalse(modelFieldDefinition.isRequired()); } } public void testDictionary() { ModelDefinition modelDefinition = factory.retrieveService(Dictionary.class); assertNotNull(modelDefinition); assertEquals(modelDefinition.getId(), "Dictionary"); Map<String, ModelFieldDefinition> fields = modelDefinition.getFields(); assertNotNull(fields); assertEquals(fields.size(), 7); } public void testMetaField() { ModelDefinition modelDefinition = factory.retrieveService(MetaField.class); assertNotNull(modelDefinition); assertEquals(modelDefinition.getId(), "MetaField"); Map<String, ModelFieldDefinition> fields = modelDefinition.getFields(); assertNotNull(fields); assertEquals(fields.size(), 6); } }