Package org.jboss.test.metadata.annotation.client

Source Code of org.jboss.test.metadata.annotation.client.AnnotationClientUnitTestCase

/*
* JBoss, Home of Professional Open Source
* Copyright 2007, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.test.metadata.annotation.client;

import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.annotation.Resources;
import javax.ejb.EJB;
import javax.ejb.EJBs;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContexts;
import javax.persistence.PersistenceUnit;
import javax.persistence.PersistenceUnits;
import javax.xml.ws.WebServiceRef;
import javax.xml.ws.WebServiceRefs;

import org.jboss.metadata.annotation.creator.AnnotationContext;
import org.jboss.metadata.annotation.creator.client.ApplicationClient5MetaDataCreator;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
import org.jboss.metadata.client.jboss.JBossClient5MetaData;
import org.jboss.metadata.client.jboss.JBossClientMetaData;
import org.jboss.metadata.client.spec.AnnotationMergedView;
import org.jboss.metadata.client.spec.ApplicationClient5MetaData;
import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
import org.jboss.test.metadata.annotation.client.basic.Client;
import org.jboss.test.metadata.annotation.client.basic.DefaultWebServiceService;
import org.jboss.test.metadata.annotation.client.basic.ResourceIF;
import org.jboss.test.metadata.common.PackageScanner;
import org.jboss.test.metadata.common.ScanPackage;
import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
import org.omg.CORBA.ORB;

/**
* Tests of JBossClientMetaData from annotations + xml merging
*
* @author Scott.Stark@jboss.org
* @version $Revision:$
*/
public class AnnotationClientUnitTestCase extends AbstractJavaEEMetaDataTest
{
   private static final String classMainName = "org.jboss.test.metadata.annotation.client.basic.Client";

   public AnnotationClientUnitTestCase(String name)
   {
      super(name);
   }

   @SuppressWarnings("unchecked")
   @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
   public void testApplicationClientProcessor()
      throws Exception
   {
      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
     
      Collection<Class<?>> classes = PackageScanner.loadClasses();
      ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder, classMainName);
      ApplicationClient5MetaData clientMD = creator.create(classes);
      assertEquals(3, clientMD.getAnnotatedEjbReferences().size());

      AnnotatedEJBReferenceMetaData resourceMethodBean = clientMD.getAnnotatedEjbReferences().get(classMainName + "/resourceMethodBean");
      assertNotNull(resourceMethodBean);
      assertEquals(ResourceIF.class, resourceMethodBean.getBeanInterface());
      assertEquals("ResourceOnMethodBean", resourceMethodBean.getLink());
      Set<ResourceInjectionTargetMetaData> resourceMethodBeanTargets = resourceMethodBean.getInjectionTargets();
      assertNotNull(resourceMethodBeanTargets);
      assertEquals(1, resourceMethodBeanTargets.size());
      ResourceInjectionTargetMetaData method = resourceMethodBeanTargets.iterator().next();
      assertEquals(Client.class.getName(), method.getInjectionTargetClass());
      assertEquals("setResourceMethodBean", method.getInjectionTargetName());

      AnnotatedEJBReferenceMetaData resourceFieldBean = clientMD.getAnnotatedEjbReferences().get(classMainName + "/resourceFieldBean");
      assertNotNull(resourceFieldBean);
      assertEquals("ResourceOnFieldBean", resourceFieldBean.getLink());
      Set<ResourceInjectionTargetMetaData> resourceFieldBeanTargets = resourceFieldBean.getInjectionTargets();
      assertNotNull(resourceFieldBeanTargets);
      assertEquals(1, resourceFieldBeanTargets.size());
      ResourceInjectionTargetMetaData field = resourceFieldBeanTargets.iterator().next();
      assertEquals(Client.class.getName(), field.getInjectionTargetClass());
      assertEquals("resourceFieldBean", field.getInjectionTargetName());

      AnnotatedEJBReferenceMetaData resourceClassBean = clientMD.getAnnotatedEjbReferences().get("ejb/resourceClassBean");
      assertNotNull(resourceClassBean);
      assertEquals("ResourcesOnClassBean", resourceClassBean.getLink());
      assertEquals("refs/resources/ResourcesOnClassBean", resourceClassBean.getMappedName());
      assertEquals("refs/resources/ResourcesOnClassBean", resourceClassBean.getJndiName());

      // jms Queue maps to message-destination-refs
      MessageDestinationReferencesMetaData msgRefs = clientMD.getMessageDestinationReferences();
      assertNotNull(msgRefs);
      MessageDestinationReferenceMetaData sendQueue = clientMD.getMessageDestinationReferenceByName("sendQueue");
      assertNotNull(sendQueue);
      Set<ResourceInjectionTargetMetaData> sendQueueTargets = sendQueue.getInjectionTargets();
      assertNotNull(sendQueueTargets);
      assertEquals(1, sendQueueTargets.size());
      ResourceInjectionTargetMetaData sendQueueField = sendQueueTargets.iterator().next();
      assertEquals(Client.class.getName(), sendQueueField.getInjectionTargetClass());
      assertEquals("sendQueue", sendQueueField.getInjectionTargetName());

      // ORB maps to a resource-env-ref
      ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName(Client.class.getName() + "/orb");
      assertNotNull(orbRes);
      Set<ResourceInjectionTargetMetaData> orbResTargets = orbRes.getInjectionTargets();
      assertNotNull(orbResTargets);
      assertEquals(1, orbResTargets.size());
      ResourceInjectionTargetMetaData orbField = orbResTargets.iterator().next();
      assertEquals(Client.class.getName(), orbField.getInjectionTargetClass());
      assertEquals("orb", orbField.getInjectionTargetName());

      // URL maps to resource-ref
      ResourceReferenceMetaData urlRes = clientMD.getResourceReferenceByName("jboss-home-page");
      assertNotNull(urlRes);
      assertEquals("http://www.jboss.org", urlRes.getMappedName());
      Set<ResourceInjectionTargetMetaData> urlResTargets = urlRes.getInjectionTargets();
      assertNotNull(urlResTargets);
      assertEquals(1, urlResTargets.size());
      ResourceInjectionTargetMetaData urlResField = urlResTargets.iterator().next();
      assertEquals(Client.class.getName(), urlResField.getInjectionTargetClass());
      assertEquals("jbossHome", urlResField.getInjectionTargetName());

      // UserTransaction
     
      // String maps to env-entry
      EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
      assertNotNull(queueNameEntry);
      assertEquals("queue/testQueue", queueNameEntry.getValue());
      Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
      assertNotNull(queueNameEntryTargets);
      assertEquals(1, queueNameEntryTargets.size());
      ResourceInjectionTargetMetaData queueNameEntryField = queueNameEntryTargets.iterator().next();
      assertEquals(Client.class.getName(), queueNameEntryField.getInjectionTargetClass());
      assertEquals("queueName", queueNameEntryField.getInjectionTargetName());
      // Float
      // int

      LifecycleCallbacksMetaData postConstructs = clientMD.getPostConstructs();
      assertNotNull(postConstructs);
      assertEquals(1, postConstructs.size());
      LifecycleCallbackMetaData pc = postConstructs.get(0);
      assertEquals(Client.class.getName(), pc.getClassName());
      assertEquals("postConstruct", pc.getMethodName());
     
      LifecycleCallbacksMetaData preDestroys = clientMD.getPreDestroys();
      assertNotNull(preDestroys);
      assertEquals(1, preDestroys.size());
      LifecycleCallbackMetaData pd = preDestroys.get(0);
      assertEquals(Client.class.getName(), pd.getClassName());
      assertEquals("destroy", pd.getMethodName());

      // @WebServiceRef
      ServiceReferenceMetaData wsRef = clientMD.getServiceReferenceByName("service/somewebservice");
      assertNotNull(wsRef);
      Field wsRefField = Client.class.getDeclaredField("service");
      assertEquals(wsRefField, wsRef.getAnnotatedElement());
      assertEquals(DefaultWebServiceService.class.getName(), wsRef.getServiceRefType());
      Set<ResourceInjectionTargetMetaData> wsRefTargets = wsRef.getInjectionTargets();
      ResourceInjectionTargetMetaData wsRefFieldTarget = wsRefTargets.iterator().next();
      assertEquals(Client.class.getName(), wsRefFieldTarget.getInjectionTargetClass());
      assertEquals("service", wsRefFieldTarget.getInjectionTargetName());
      assertNull(wsRef.getServiceInterface());
     
      assertAnnotationContext(creator.getAnnotationContext());
   }

   @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
   public void testXmlMerge()
      throws Exception
   {
      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
      Collection<Class<?>> classes = PackageScanner.loadClasses();
      ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder, classMainName);
      ApplicationClient5MetaData clientMD = creator.create(classes);
     
      ApplicationClient5MetaData xmlMD = super.unmarshal(ApplicationClient5MetaData.class);
      EnvironmentEntryMetaData msg = xmlMD.getEnvironmentEntryByName("msg");
      assertNotNull(msg);
     
      ApplicationClient5MetaData merged = new ApplicationClient5MetaData();
      AnnotationMergedView.merge(merged, xmlMD, clientMD);

      msg = merged.getEnvironmentEntryByName("msg");
      assertNotNull(msg);
      assertEquals("java.lang.String", msg.getType());
      assertEquals("how are you?", msg.getValue());

      LifecycleCallbacksMetaData postConstructs = merged.getPostConstructs();
      assertNotNull(postConstructs);
      // 2 because of the null class name in the xml
      assertEquals(2, postConstructs.size());
      LifecycleCallbackMetaData pc0 = postConstructs.get(0);
      assertEquals("postConstruct", pc0.getMethodName());

      LifecycleCallbacksMetaData preDestroys = merged.getPreDestroys();
      assertNotNull(preDestroys);
      // 2 because of the null class name in the xml
      assertEquals(2, preDestroys.size());
      LifecycleCallbackMetaData pd0 = preDestroys.get(0);
      assertEquals("preDestroy", pd0.getMethodName());

      assertEquals("org.jboss.ejb3.test.applicationclient.client.TestCallbackHandler", merged.getCallbackHandler());

      // ORB maps to a resource-env-ref
      ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName(Client.class.getName() + "/orb");
      assertNotNull(orbRes);
      assertEquals(ORB.class.getName(), orbRes.getType());
      ResourceEnvironmentReferenceMetaData messageReplier = merged.getResourceEnvironmentReferenceByName("messageReplier");
      assertNotNull(messageReplier);
      assertEquals("javax.jms.Queue", messageReplier.getType());

      // String maps to env-entry
      EnvironmentEntryMetaData queueNameEntry = clientMD.getEnvironmentEntryByName("queueName");
      assertNotNull(queueNameEntry);
      assertEquals("queue/testQueueOverride", queueNameEntry.getValue());
      Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
      assertNotNull(queueNameEntryTargets);
      assertEquals(1, queueNameEntryTargets.size());
      ResourceInjectionTargetMetaData queueNameEntryField = queueNameEntryTargets.iterator().next();
      assertEquals(Client.class.getName(), queueNameEntryField.getInjectionTargetClass());
      assertEquals("queueName", queueNameEntryField.getInjectionTargetName());

      MessageDestinationMetaData md = merged.getMessageDestinationByName("MY-QUEUE");
      assertNotNull(md);
      assertEquals("queue/testQueue", md.getJndiName());
      assertEquals("queue/testQueue", md.getMappedName());
     
      ServiceReferencesMetaData serviceReferences = merged.getServiceReferences();
      assertNotNull(serviceReferences);
      assertEquals(1, serviceReferences.size());
   }
  
   @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
   public void testJBossXmlMerge()
      throws Exception
   {
         AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
         Collection<Class<?>> classes = PackageScanner.loadClasses();
         ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder, classMainName);
         ApplicationClient5MetaData clientMD = creator.create(classes);        
        
         ApplicationClient5MetaData xmlMD = super.unmarshal("AnnotationClient_testXmlMerge.xml", ApplicationClient5MetaData.class);
         ApplicationClient5MetaData merged = new ApplicationClient5MetaData();
         AnnotationMergedView.merge(merged, xmlMD, clientMD);
        
         JBossClientMetaData jbossXmlMD = super.unmarshal(JBossClientMetaData.class);
         // Create a merged view
         JBossClientMetaData mergedMetaData = new JBossClientMetaData();
         mergedMetaData.merge(jbossXmlMD, merged, false);

         EnvironmentEntryMetaData msg = mergedMetaData.getEnvironmentEntryByName("msg");
         assertNotNull(msg);
         assertEquals("java.lang.String", msg.getType());
         assertEquals("how are you?", msg.getValue());

         LifecycleCallbacksMetaData postConstructs = mergedMetaData.getPostConstructs();
         assertNotNull(postConstructs);
         // 2 because of the null class name in the xml
         assertEquals(2, postConstructs.size());
         LifecycleCallbackMetaData pc0 = postConstructs.get(0);
         assertEquals("postConstruct", pc0.getMethodName());

         LifecycleCallbacksMetaData preDestroys = mergedMetaData.getPreDestroys();
         assertNotNull(preDestroys);
         // 2 because of the null class name in the xml
         assertEquals(2, preDestroys.size());
         LifecycleCallbackMetaData pd0 = preDestroys.get(0);
         assertEquals("preDestroy", pd0.getMethodName());

         assertEquals("org.jboss.ejb3.test.applicationclient.client.TestCallbackHandler", mergedMetaData.getCallbackHandler());

         // jms Queue maps to message-destination-refs
         MessageDestinationReferencesMetaData msgRefs = mergedMetaData.getMessageDestinationReferences();
         assertNotNull(msgRefs);
         MessageDestinationReferenceMetaData sendQueue = mergedMetaData.getMessageDestinationReferenceByName("sendQueue");
         assertNotNull(sendQueue);
         assertEquals("MDB_QUEUE", sendQueue.getJndiName());
         assertEquals("MDB_QUEUE", sendQueue.getMappedName());
         Set<ResourceInjectionTargetMetaData> sendQueueTargets = sendQueue.getInjectionTargets();
         assertEquals(1, sendQueueTargets.size());
         ResourceInjectionTargetMetaData sendQueueField = sendQueueTargets.iterator().next();
         assertEquals(Client.class.getName(), sendQueueField.getInjectionTargetClass());
         assertEquals("sendQueue", sendQueueField.getInjectionTargetName());

         // jms queue connection factory maps to resource-ref
         ResourceReferenceMetaData qcfRef = mergedMetaData.getResourceReferenceByName("queueConnectionFactory");
         assertNotNull(qcfRef);
         assertEquals("jms/QueueConnectionFactory", qcfRef.getJndiName());
         assertEquals("jms/QueueConnectionFactory", qcfRef.getMappedName());
         Set<ResourceInjectionTargetMetaData> qcfRefTargets = qcfRef.getInjectionTargets();
         assertEquals(1, qcfRefTargets.size());
         ResourceInjectionTargetMetaData qcfRefField = qcfRefTargets.iterator().next();
         assertEquals(Client.class.getName(), qcfRefField.getInjectionTargetClass());
         assertEquals("queueConnectionFactory", qcfRefField.getInjectionTargetName());
        
         // ORB maps to a resource-env-ref
         ResourceEnvironmentReferenceMetaData orbRes = clientMD.getResourceEnvironmentReferenceByName(Client.class.getName() + "/orb");
         assertNotNull(orbRes);
         assertEquals(ORB.class.getName(), orbRes.getType());
         ResourceEnvironmentReferenceMetaData messageReplier = mergedMetaData.getResourceEnvironmentReferenceByName("messageReplier");
         assertNotNull(messageReplier);
         assertEquals("javax.jms.Queue", messageReplier.getType());

         // String maps to env-entry
         EnvironmentEntryMetaData queueNameEntry = mergedMetaData.getEnvironmentEntryByName("queueName");
         assertNotNull(queueNameEntry);
         assertEquals("queue/testQueueOverride", queueNameEntry.getValue());
         Set<ResourceInjectionTargetMetaData> queueNameEntryTargets = queueNameEntry.getInjectionTargets();
         assertNotNull(queueNameEntryTargets);
         assertEquals(1, queueNameEntryTargets.size());
         ResourceInjectionTargetMetaData queueNameEntryField = queueNameEntryTargets.iterator().next();
         assertEquals(Client.class.getName(), queueNameEntryField.getInjectionTargetClass());
         assertEquals("queueName", queueNameEntryField.getInjectionTargetName());

         MessageDestinationMetaData md = mergedMetaData.getMessageDestinationByName("MY-QUEUE");
         assertNotNull(md);
         assertEquals("queue/testQueue", md.getJndiName());
         assertEquals("queue/testQueue", md.getMappedName());
        
         JBossServiceReferencesMetaData serviceReferences = (JBossServiceReferencesMetaData) mergedMetaData.getServiceReferences();
         assertNotNull(serviceReferences);
         assertEquals(1, serviceReferences.size());
         JBossServiceReferenceMetaData serviceRef = (JBossServiceReferenceMetaData) serviceReferences.iterator().next();
         assertNotNull(serviceRef);
         assertEquals("service/somewebservice", serviceRef.getServiceRefName());
         assertEquals("http://localhost:8080/WSDefaultWebServiceApp/jws/defaultWebService?WSDL", serviceRef.getWsdlOverride());
         Field wsRefField = Client.class.getDeclaredField("service");
         //assertEquals(wsRefField, serviceRef.getAnnotatedElement());
         assertEquals(DefaultWebServiceService.class.getName(), serviceRef.getServiceRefType());
         Set<ResourceInjectionTargetMetaData> wsRefTargets = serviceRef.getInjectionTargets();
         ResourceInjectionTargetMetaData wsRefFieldTarget = wsRefTargets.iterator().next();
         assertEquals(Client.class.getName(), wsRefFieldTarget.getInjectionTargetClass());
         assertEquals("service", wsRefFieldTarget.getInjectionTargetName());
         assertEquals(wsRefField.getType().getName(), serviceRef.getServiceInterface());
   }
  
   private void assertAnnotationContext(AnnotationContext context)
   {
      Collection<Class<? extends Annotation>> typeAnnotations = new HashSet<Class<? extends Annotation>>();
      typeAnnotations.add(Resource.class);
      typeAnnotations.add(Resources.class);
      typeAnnotations.add(EJB.class);
      typeAnnotations.add(EJBs.class);
      typeAnnotations.add(PersistenceContext.class);
      typeAnnotations.add(PersistenceContexts.class);
      typeAnnotations.add(PersistenceUnit.class);
      typeAnnotations.add(PersistenceUnits.class);
      typeAnnotations.add(WebServiceRef.class);
      typeAnnotations.add(WebServiceRefs.class);
     
      // Assert Type annotations
      assertAnnotations(typeAnnotations, context.getTypeAnnotations());
     
      Collection<Class<? extends Annotation>> methodAnnotations = new HashSet<Class<? extends Annotation>>();
      methodAnnotations.add(PreDestroy.class);
      methodAnnotations.add(PostConstruct.class);
      methodAnnotations.add(Resource.class);
      methodAnnotations.add(EJB.class);
      methodAnnotations.add(PersistenceContext.class);
      methodAnnotations.add(PersistenceUnit.class);
      methodAnnotations.add(WebServiceRef.class);
     
      // Assert Method annotations
      assertAnnotations(methodAnnotations, context.getMethodAnnotations());
     
      Collection<Class<? extends Annotation>> fieldAnnotations = new HashSet<Class<? extends Annotation>>();
      fieldAnnotations.add(Resource.class);
      fieldAnnotations.add(EJB.class);
      fieldAnnotations.add(PersistenceContext.class);
      fieldAnnotations.add(PersistenceUnit.class);
      fieldAnnotations.add(WebServiceRef.class);
     
      // Assert Field annotations
      assertAnnotations(fieldAnnotations, context.getFieldAnnotations());
   }
  
   private void assertAnnotations(Collection<Class<? extends Annotation>> expected, Collection<Class<? extends Annotation>> actual)
   {
      assertEquals(expected.size(), actual.size());
      assertTrue(actual.containsAll(expected));
   }
  
   @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
   public void testAnnotatednEnv() throws Exception
   {
      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
      Collection<Class<?>> classes = PackageScanner.loadClasses();
      ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder, classMainName);
     
      ApplicationClient5MetaData annotatedMetaData = creator.create(classes);        
      ApplicationClient5MetaData specMetaData = super.unmarshal("AnnotationClient_testAnnotatedEnv.xml", ApplicationClient5MetaData.class);
      JBossClientMetaData metaData = super.unmarshal("JBossAnnotationClient_testAnnotatedEnv.xml", JBossClient5MetaData.class);
     
      // Create a merged view
      ApplicationClient5MetaData specMerged = new ApplicationClient5MetaData();
      AnnotationMergedView.merge(specMerged, specMetaData, annotatedMetaData);
      specMetaData = specMerged;

      JBossClientMetaData mergedMetaData = new JBossClientMetaData();
      mergedMetaData.merge(metaData, specMetaData, false);
     
      assertNotNull(mergedMetaData);
      AnnotatedEJBReferencesMetaData annotatedRefs = mergedMetaData.getAnnotatedEjbReferences();
      assertNotNull(annotatedRefs);
      AnnotatedEJBReferenceMetaData annotatedRef = annotatedRefs.get("ejb/resourceClassBean");
      assertNotNull(annotatedRef);
      assertNotNull(annotatedRef.getIgnoreDependency());
      // The same name for jndi / mappedname
      assertEquals("test_resourceClasJndiName", annotatedRef.getJndiName());
      assertEquals("test_resourceClasJndiName", annotatedRef.getMappedName());
   }
}
TOP

Related Classes of org.jboss.test.metadata.annotation.client.AnnotationClientUnitTestCase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.