/** * @return s the Properties as Model */ public AmwResourceTemplateModel getPropertiesAsModel() { AmwResourceTemplateModel model = new AmwResourceTemplateModel(); if (properties != null) { model = properties.transformModel(); } if(parentGenerationSubPackage != null && parentGenerationSubPackage.getPackageGenerationUnit() != null){ AmwResourceTemplateModel parent = parentGenerationSubPackage.getPackageGenerationUnit().getPropertiesAsModel(); model.setParentResourceTemplateModel(parent); } return model; }
@Test public void testPropertyIdentifierWhenNullIdentifierOnType() throws TemplateModelException { builder.buildConsumedRelation(DB2, MAIL, ForeignableOwner.AMW); initialize(); AmwResourceTemplateModel properties = propertiesFor(work.getAsSet(), DB2).transformModel(); assertEquals("mailrelay", TestUtils.asHashModel(properties, "consumedResTypes", "Mail", "mail").get("name").toString()); assertEquals("mailrelay", TestUtils.asHashModel(properties, "mail").get("name").toString()); }
@Test public void testPropertyIdentifierWhenSetOnType() throws TemplateModelException { builder.buildConsumedRelation(DB2, MAIL, ForeignableOwner.AMW); builder.relationFor(DB2, MAIL).setIdentifier("mail_1"); initialize(); AmwResourceTemplateModel properties = propertiesFor(work.getAsSet(), DB2).transformModel(); assertEquals("mailrelay", TestUtils.asHashModel(properties, "consumedResTypes", "Mail", "mail_1").get("name").toString()); assertEquals("mailrelay", TestUtils.asHashModel(properties, "mail_1").get("name").toString()); }
@Test public void testCosumed_ofProvidedWS() throws IOException, TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); prepareWorkUnits(templateExceptionHandler); GenerationUnit wsUnit = TestUtils.unitFor(work.getAsSet(), builder.ws); AmwResourceTemplateModel model = wsUnit.getAppServerRelationProperties().transformModel(); assertEquals("as2", TestUtils.asHashModel(model, "appServer").get("label").toString()); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testTemplatesInRelatedResources() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity owner = builder.resourceFor(APP); ResourceEntity ad = builder.resourceFor(AD); ConsumedResourceRelationEntity relation = builder.relationFor(owner.getName(), ad.getName()); AppServerRelationProperties appServerRelationProperties = new AppServerRelationProperties(context, owner, templateExceptionHandler); appServerRelationProperties.addConsumedRelation("active_directory", ad, relation); SetMultimap<ResourceEntity, GeneratedTemplate> templatesCache = LinkedHashMultimap.create(); templatesCache.put(ad, new GeneratedTemplate("name", "path", "content")); appServerRelationProperties.getConsumed().get(0).setTemplatesCache(templatesCache); appServerRelationProperties.setTemplatesCache(templatesCache); TemplateHashModel model = TestUtils.asHashModel(appServerRelationProperties.transformModel(), "active_directory", "templates", "name"); assertEquals("content", model.get("content").toString()); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testTwoRelatedProvidedResourcesOfSameType() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity ws2 = builder.buildResource(builder.typeFor(WS.type), "ws2"); builder.buildProvidedRelation(builder.app, builder.ws, ForeignableOwner.AMW); builder.buildProvidedRelation(builder.app, ws2, ForeignableOwner.AMW); AppServerRelationProperties properties = new AppServerRelationProperties(builder.context, builder.app, templateExceptionHandler); for (ProvidedResourceRelationEntity relation : builder.app.getProvidedMasterRelations()) { ResourceEntity slaveResource = relation.getSlaveResource(); properties.addProvidedRelation(slaveResource.getName(), slaveResource, relation); } assertEquals(2, properties.getProvided().size()); AmwResourceTemplateModel hash = properties.transformModel(); assertEquals("app", hash.get("label").toString()); assertNull(hash.get("propertyTypes")); assertEquals(TestUtils.asHashModel(hash, "providedResTypes", "Webservice", "ws").get("label").toString(), "ws"); assertNull(TestUtils.asHashModel(hash, "providedResTypes", "Webservice", "ws").get("propertyTypes")); assertEquals(TestUtils.asHashModel(hash, "providedResTypes", "Webservice", "ws2").get("label").toString(), "ws2"); assertNull(TestUtils.asHashModel(hash, "providedResTypes", "Webservice", "ws2").get("propertyTypes")); hash = properties.transformModel(); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testConsumed_ofAppConsumingWs() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); prepareWorkUnits(templateExceptionHandler); GenerationUnit appUnit = TestUtils.unitFor(work.getAsSet(), builder.app); AmwResourceTemplateModel map = appUnit.getAppServerRelationProperties().transformModel(); assertEquals("as2", TestUtils.asHashModel(map, "consumedResTypes", "Webservice", "ws","appServer").get("label").toString()); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testOnlyProvidedResource() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity ad = builder.resourceFor(AD); ResourceEntity mail = builder.resourceFor(MAIL); ProvidedResourceRelationEntity relation = builder.buildProvidedRelation(ad, mail, ForeignableOwner.AMW); AppServerRelationProperties properties = new AppServerRelationProperties(context, ad, templateExceptionHandler); properties.addProvidedRelation("mailrelay", mail, relation); TemplateHashModel model = TestUtils.asHashModel(properties.transformModel(), "providedResTypes", "Mail", "mailrelay"); assertEquals("mailrelay", model.get("name").toString()); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testConsumeMultipleResourcesWithDifferentIdentifier() throws Exception { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); prepareWorkUnits(templateExceptionHandler); GenerationUnit appUnit = TestUtils.unitFor(work.getAsSet(), builder.app); AmwResourceTemplateModel model = appUnit.getAppServerRelationProperties().transformModel(); assertEquals("adIntern", TestUtils.asHashModel(model, "consumedResTypes", "ActiveDirectory", "adIntern_1").get("name").toString()); assertEquals("adIntern", TestUtils.asHashModel(model, "consumedResTypes", "ActiveDirectory", "adIntern").get("name").toString()); assertEquals("adIntern", TestUtils.asHashModel(model, "adIntern_1").get("name").toString()); assertEquals("adIntern", TestUtils.asHashModel(model, "adIntern").get("name").toString()); assertEquals("adExtern", TestUtils.asHashModel(model, "consumedResTypes", "ActiveDirectory", "adExtern_1").get("name").toString()); assertEquals("adExtern", TestUtils.asHashModel(model, "consumedResTypes", "ActiveDirectory", "adExtern").get("name").toString()); assertEquals("adExtern", TestUtils.asHashModel(model, "adExtern_1").get("name").toString()); assertEquals("adExtern", TestUtils.asHashModel(model, "adExtern").get("name").toString()); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testTwoRelatedResourcesOfSameType() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity app2 = builder.buildResource(builder.typeFor(APP.type), "app2"); builder.buildConsumedRelation(builder.as, app2, ForeignableOwner.AMW); AppServerRelationProperties properties = new AppServerRelationProperties(builder.context, builder.as, templateExceptionHandler); for (ConsumedResourceRelationEntity relation : builder.as.getConsumedMasterRelations()) { ResourceEntity slaveResource = relation.getSlaveResource(); properties.addConsumedRelation(slaveResource.getName(), slaveResource, relation); } assertEquals(2, properties.getConsumed().size()); AmwResourceTemplateModel hash = properties.transformModel(); assertEquals("as", hash.get("label").toString()); TemplateHashModel appModel = TestUtils.asHashModel(hash, "consumedResTypes", "APPLICATION", "app"); assertEquals("app", appModel.get("label").toString()); TemplateHashModel appModel2 = TestUtils.asHashModel(hash, "consumedResTypes", "APPLICATION", "app2"); assertEquals("app2", appModel2.get("label").toString()); TemplateHashModel propertyTypes = TestUtils.asHashModel(hash, "providedResTypes", "APPLICATION", "propertyTypes"); assertTrue(propertyTypes.isEmpty()); hash = properties.transformModel(); assertTrue(templateExceptionHandler.isSuccess()); }
@Test public void testOnlyConsumedResource() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity ad = builder.resourceFor(AD); ResourceEntity mail = builder.resourceFor(MAIL); builder.buildResourceProperty(ad, "foo", "bar"); ConsumedResourceRelationEntity relation = builder.buildConsumedRelation(ad, mail, ForeignableOwner.AMW); AppServerRelationProperties properties = new AppServerRelationProperties(context, ad, templateExceptionHandler); properties.addConsumedRelation("mailrelay", mail, relation); TemplateHashModel model = TestUtils.asHashModel(properties.transformModel(), "consumedResTypes", "Mail", "mailrelay"); assertEquals("mailrelay", model.get("name").toString()); assertTrue(templateExceptionHandler.isSuccess()); } }
@Test public void testPropertyIdentifierWhenRelationExistsTwice() throws TemplateModelException { builder.buildConsumedRelation(DB2, MAIL, ForeignableOwner.AMW); ResourceEntity other = builder.buildResource(MAIL, "the_other_mail"); ResourceRelationTypeEntity otherTypeRelation = builder.buildTypeRelation(DB2, MAIL); ConsumedResourceRelationEntity otherInstanceRelation = builder.buildConsumedRelation(builder.resourceFor(DB2), other, ForeignableOwner.AMW); otherInstanceRelation.setIdentifier("other_instance_identifier"); otherInstanceRelation.setResourceRelationType(otherTypeRelation); otherTypeRelation.setIdentifier("other_instance_identifier"); initialize(); AmwResourceTemplateModel properties = propertiesFor(work.getAsSet(), DB2).transformModel(); assertEquals("the_other_mail", TestUtils.asHashModel(properties, "consumedResTypes", "Mail", "other_instance_identifier").get("name").toString()); assertEquals("the_other_mail", TestUtils.asHashModel(properties, "other_instance_identifier").get("name").toString()); assertEquals("mailrelay", TestUtils.asHashModel(properties, "consumedResTypes", "Mail", "mail").get("name").toString()); assertEquals("mailrelay", TestUtils.asHashModel(properties, "mail").get("name").toString()); }
@Test public void test() throws TemplateModelException { AMWTemplateExceptionHandler templateExceptionHandler = new AMWTemplateExceptionHandler(); ResourceEntity owner = builder.resourceFor(APP); ResourceEntity ad = builder.resourceFor(AD); ConsumedResourceRelationEntity relation = builder.relationFor(owner.getName(), ad.getName()); AppServerRelationProperties appServerRelationProperties = new AppServerRelationProperties(context, owner, templateExceptionHandler); appServerRelationProperties.addConsumedRelation("adIntern", ad, relation); AmwResourceTemplateModel properties = appServerRelationProperties.transformModel(); assertEquals("1", properties.get("id").toString()); assertEquals("ch_puzzle_itc_mobi_amw", properties.get("name").toString()); assertNull(properties.get("propertyTypes")); assertTrue(((TemplateHashModel) properties.get("providedResTypes")).isEmpty()); assertFalse(((TemplateHashModel) properties.get("consumedResTypes")).isEmpty()); assertEquals("4", TestUtils.asHashModel(properties, "consumedResTypes", "ActiveDirectory", "adIntern").get("id").toString()); assertEquals("adIntern", TestUtils.asHashModel(properties, "consumedResTypes", "ActiveDirectory", "adIntern").get("name").toString()); assertEquals("4", TestUtils.asHashModel(properties, "adIntern").get("id").toString()); assertEquals("adIntern", TestUtils.asHashModel(properties, "adIntern").get("name").toString()); assertTrue(templateExceptionHandler.isSuccess()); }