String modelName = makeUniqueName("testCustomModelFailed"); Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); createModel(model, false); fail("Shouldn't be able to create a model without namespace imports, when type and/or aspect have parent name."); CustomModelDefinition modelDefinition = createModel(model, false); AspectDefinition aspectDefinition = getAspect(aspectQName); assertEquals(1, getModel(modelName).getAspectDefinitions().size()); TypeDefinition typeDefinition = getType(typeQName); assertNotNull(typeDefinition); assertEquals(1, getModel(modelName).getTypeDefinitions().size()); updateModel(modelName, model, false); aspectDefinition = getAspect(aspectQName); assertNotNull(aspectDefinition); assertEquals(aspectQName, aspectDefinition.getName()); assertEquals(2, getModel(modelName).getAspectDefinitions().size()); updateModel(modelName, model, false); typeDefinition = getType(typeQName); assertNotNull(typeDefinition);
@Test public void testListTypesAspects_Empty() throws Exception { final String modelName = makeUniqueName("testCustomModel"); Pair<String, String> namespacePair = getTestNamespacePrefixPair(); final M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); createModel(model, false); // Retrieve the created model CustomModelDefinition modelDefinition = getModel(modelName); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName()); // List all of the model's types Collection<TypeDefinition> types = modelDefinition.getTypeDefinitions(); assertEquals(0, types.size()); // List all of the model's aspects Collection<AspectDefinition> aspects = modelDefinition.getAspectDefinitions(); assertEquals(0, aspects.size()); }
@Test public void testCreateDownload() throws Exception final String modelName = makeUniqueName("testDownloadCustomModel"); final String modelExportFileName = modelName + ".xml"; final String shareExtExportFileName = "CMM_" + modelName + "_module.xml"; Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, false); NodeRef downloadNode = createDownload(modelName, false); assertNotNull(downloadNode); downloadNode = createDownload(modelName, true); assertNotNull(downloadNode); downloadNode = createDownload(modelName, true); assertNotNull(downloadNode);
@Test public void testisNamespaceUriExists() { final String modelName = makeUniqueName("testCustomModel"); final Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); model.setAuthor("John Doe"); assertNull(customModelService.getCustomModelByUri(namespacePair.getFirst())); // Create the model CustomModelDefinition modelDefinition = createModel(model, false); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName()); ModelDefinition modelDefinitionByUri = transactionHelper.doInTransaction(new RetryingTransactionCallback<ModelDefinition>() { @Override public ModelDefinition execute() throws Throwable { assertTrue(customModelService.isNamespaceUriExists(namespacePair.getFirst())); return customModelService.getCustomModelByUri(namespacePair.getFirst()); } }); assertNotNull(modelDefinitionByUri); assertEquals(modelName, modelDefinitionByUri.getName().getLocalName()); }
final String modelName = makeUniqueName("testCustomModelsInfo"); Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); createModel(model, true); model.createAspect(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + aspectNameTwo); updateModel(modelName, model, true);
@Test public void testDeleteModel() throws Exception final String modelName = makeUniqueName("testDeleteCustomModel"); Pair<String, String> namespacePair = getTestNamespacePrefixPair(); final M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, false); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName()); modelDefinition = getModel(modelName); assertNull(modelDefinition);
final String modelName1 = makeUniqueName("testCustomModel1"); final String desc = "This is test custom model desc"; Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName1); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, false); final String modelName2 = makeUniqueName("testCustomModel2"); model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName2); model.createNamespace(namespacePair.getFirst(), "newTestPrefix"); createModel(model, false); fail("Shouldn't be able to create a model with an already in-use namespace uri."); final String modelName3 = makeUniqueName("testCustomModel3"); model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName3); model.createNamespace(getTestNamespacePrefixPair().getFirst(), namespacePair.getSecond()); createModel(model, false); fail("Shouldn't be able to create a model with an already in-use namespace prefix."); namespacePair = getTestNamespacePrefixPair(); model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName2); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); modelDefinition = createModel(model, false); assertNotNull(modelDefinition); assertEquals(modelName2, modelDefinition.getName().getLocalName());
final String modelName = makeUniqueName("testUpdateCustomModel"); final String desc = "This is test custom model desc"; Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, false); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName()); updateModel(modelName, model, false); fail("Shouldn't be able to update a custom model with an empty namespace."); updateModel(modelName, model, false); fail("Model validation should have failed, as the namespace prefix is null."); updateModel(modelName, model, false); fail("Shouldn't be able to add more than one namespace URI into a custom model."); updateModel(modelName, model, false); fail("Shouldn't be able to update a model with an already in-use namespace URI."); updateModel(modelName, model, false); fail("Shouldn't be able to update a model with an already in-use namespace Prefix."); Pair<String, String> newNamespacePair = getTestNamespacePrefixPair(); model = M2Model.createModel(newNamespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(newNamespacePair.getFirst(), newNamespacePair.getSecond());
@Test public void testActivateModel() throws Exception final String modelName = makeUniqueName("testCustomModel"); final String desc = "This is test custom model desc"; Pair<String, String> namespacePair = getTestNamespacePrefixPair(); M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, false); modelDefinition = getModel(modelName); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName());
@Test public void testDeactivateModel() throws Exception final String modelName = makeUniqueName("testDeactivateCustomModel"); final String desc = "This is test custom model desc"; Pair<String, String> namespacePair = getTestNamespacePrefixPair(); final M2Model model = M2Model.createModel(namespacePair.getSecond() + QName.NAMESPACE_PREFIX + modelName); model.createNamespace(namespacePair.getFirst(), namespacePair.getSecond()); CustomModelDefinition modelDefinition = createModel(model, true); assertNotNull(modelDefinition); assertEquals(modelName, modelDefinition.getName().getLocalName());