blob: 1571f842bf81df7b8750e08881ab3a792a8e4d86 [file] [log] [blame]
/***********************************************************************
* Copyright (c) 2008 by SAP AG, Walldorf.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
***********************************************************************/
package org.eclipse.jst.jee.model.mergers.tests;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.jst.javaee.core.EjbLocalRef;
import org.eclipse.jst.javaee.core.EjbRef;
import org.eclipse.jst.javaee.core.EjbRefType;
import org.eclipse.jst.javaee.core.EnvEntry;
import org.eclipse.jst.javaee.core.EnvEntryType;
import org.eclipse.jst.javaee.core.JavaeeFactory;
import org.eclipse.jst.javaee.core.MessageDestinationRef;
import org.eclipse.jst.javaee.core.MessageDestinationUsageType;
import org.eclipse.jst.javaee.core.PersistenceContextRef;
import org.eclipse.jst.javaee.core.PersistenceContextType;
import org.eclipse.jst.javaee.core.PersistenceUnitRef;
import org.eclipse.jst.javaee.core.ResAuthType;
import org.eclipse.jst.javaee.core.ResSharingScopeType;
import org.eclipse.jst.javaee.core.ResourceEnvRef;
import org.eclipse.jst.javaee.core.ResourceRef;
import org.eclipse.jst.javaee.core.ServiceRef;
import org.eclipse.jst.javaee.ejb.EjbFactory;
import org.eclipse.jst.javaee.ejb.SessionBean;
import org.eclipse.jst.jee.model.internal.mergers.JNDIRefsMerger;
/**
* Tester class for JNDI references artifacts.
*
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
*
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
*
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
*
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
*
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
*
*
* @author Dimitar Giormov
*
*/
public class JndiRefsTest extends TestCase{
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testResourceEnvRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceEnvRef envRefBase = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefBase.setMappedName("mapped1");
envRefBase.setResourceEnvRefName("refName1");
envRefBase.setResourceEnvRefType("type1");
ResourceEnvRef envRefToMerge = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefToMerge.setMappedName("mapped2");
envRefToMerge.setResourceEnvRefName("refName2");
envRefToMerge.setResourceEnvRefType("type2");
beanBase.getResourceEnvRefs().add(envRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceEnvRefs().size());
assertEquals("mapped1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefName());
assertEquals("type1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefType());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testResourceEnvRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceEnvRef envRefBase = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefBase.setMappedName("mapped1");
envRefBase.setResourceEnvRefName("refName1");
envRefBase.setResourceEnvRefType("type1");
ResourceEnvRef envRefToMerge = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefToMerge.setMappedName("mapped2");
envRefToMerge.setResourceEnvRefName("refName2");
envRefToMerge.setResourceEnvRefType("type2");
beanToMerge.getResourceEnvRefs().add(envRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceEnvRefs().size());
assertEquals("mapped1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefName());
assertEquals("type1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefType());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testResourceEnvRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceEnvRef envRefBase = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefBase.setMappedName("mapped1");
envRefBase.setResourceEnvRefName("refName1");
envRefBase.setResourceEnvRefType("type1");
ResourceEnvRef envRefToMerge = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefToMerge.setMappedName("mapped2");
envRefToMerge.setResourceEnvRefName("refName2");
envRefToMerge.setResourceEnvRefType("type2");
beanBase.getResourceEnvRefs().add(envRefBase);
beanToMerge.getResourceEnvRefs().add(envRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceEnvRefs().size());
assertEquals("mapped1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefName());
assertEquals("type1", ((ResourceEnvRef)beanBase.getResourceEnvRefs().get(0)).getResourceEnvRefType());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testResourceEnvRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceEnvRef envRefBase = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefBase.setMappedName("mapped1");
envRefBase.setResourceEnvRefName("refName1");
envRefBase.setResourceEnvRefType("type1");
ResourceEnvRef envRefToMerge = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefToMerge.setMappedName("mapped2");
envRefToMerge.setResourceEnvRefName("refName2");
envRefToMerge.setResourceEnvRefType("type2");
beanBase.getResourceEnvRefs().add(envRefBase);
beanToMerge.getResourceEnvRefs().add(envRefBase);
beanToMerge.getResourceEnvRefs().add(envRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getResourceEnvRefs().size());
ResourceEnvRef test = getResEnvRef(beanBase.getResourceEnvRefs(), "refName1");
ResourceEnvRef test2 = getResEnvRef(beanBase.getResourceEnvRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals("type1", test.getResourceEnvRefType());
assertEquals("mapped2", test2.getMappedName());
assertEquals("type2", test2.getResourceEnvRefType());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testResourceEnvRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceEnvRef envRefBase = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefBase.setResourceEnvRefName("refName1");
ResourceEnvRef envRefToMerge = JavaeeFactory.eINSTANCE.createResourceEnvRef();
envRefToMerge.setMappedName("mapped2");
envRefToMerge.setResourceEnvRefName("refName1");
envRefToMerge.setResourceEnvRefType("type2");
beanBase.getResourceEnvRefs().add(envRefBase);
beanToMerge.getResourceEnvRefs().add(envRefBase);
beanToMerge.getResourceEnvRefs().add(envRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceEnvRefs().size());
ResourceEnvRef test = getResEnvRef(beanBase.getResourceEnvRefs(), "refName1");
assertEquals("type2", test.getResourceEnvRefType());
assertEquals("mapped2", test.getMappedName());
}
private ResourceEnvRef getResEnvRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
ResourceEnvRef ref = (ResourceEnvRef) object;
if(name.equals(ref.getResourceEnvRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testResourceRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceRef resRefBase = JavaeeFactory.eINSTANCE.createResourceRef();
resRefBase.setMappedName("mapped1");
resRefBase.setResRefName("refName1");
resRefBase.setResType("type1");
resRefBase.setResAuth(ResAuthType.APPLICATION_LITERAL);
resRefBase.setResSharingScope(ResSharingScopeType.SHAREABLE_LITERAL);
ResourceRef resRefToMerge = JavaeeFactory.eINSTANCE.createResourceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setResRefName("refName2");
resRefToMerge.setResType("type2");
resRefToMerge.setResAuth(ResAuthType.CONTAINER_LITERAL);
resRefToMerge.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL);
beanBase.getResourceRefs().add(resRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceRefs().size());
assertEquals("mapped1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResRefName());
assertEquals("type1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResType());
assertEquals(ResAuthType.APPLICATION_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResAuth());
assertEquals(ResSharingScopeType.SHAREABLE_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResSharingScope());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testResourceRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceRef resRefBase = JavaeeFactory.eINSTANCE.createResourceRef();
resRefBase.setMappedName("mapped1");
resRefBase.setResRefName("refName1");
resRefBase.setResType("type1");
resRefBase.setResAuth(ResAuthType.APPLICATION_LITERAL);
resRefBase.setResSharingScope(ResSharingScopeType.SHAREABLE_LITERAL);
ResourceRef resRefToMerge = JavaeeFactory.eINSTANCE.createResourceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setResRefName("refName2");
resRefToMerge.setResType("type2");
resRefToMerge.setResAuth(ResAuthType.CONTAINER_LITERAL);
resRefToMerge.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL);
beanToMerge.getResourceRefs().add(resRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceRefs().size());
assertEquals("mapped1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResRefName());
assertEquals("type1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResType());
assertEquals(ResAuthType.APPLICATION_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResAuth());
assertEquals(ResSharingScopeType.SHAREABLE_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResSharingScope());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testResourceRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceRef resRefBase = JavaeeFactory.eINSTANCE.createResourceRef();
resRefBase.setMappedName("mapped1");
resRefBase.setResRefName("refName1");
resRefBase.setResType("type1");
resRefBase.setResAuth(ResAuthType.APPLICATION_LITERAL);
resRefBase.setResSharingScope(ResSharingScopeType.SHAREABLE_LITERAL);
ResourceRef resRefToMerge = JavaeeFactory.eINSTANCE.createResourceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setResRefName("refName2");
resRefToMerge.setResType("type2");
resRefToMerge.setResAuth(ResAuthType.CONTAINER_LITERAL);
resRefToMerge.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL);
beanBase.getResourceRefs().add(resRefBase);
beanToMerge.getResourceRefs().add(resRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceRefs().size());
assertEquals("mapped1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResRefName());
assertEquals("type1", ((ResourceRef)beanBase.getResourceRefs().get(0)).getResType());
assertEquals(ResAuthType.APPLICATION_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResAuth());
assertEquals(ResSharingScopeType.SHAREABLE_LITERAL, ((ResourceRef)beanBase.getResourceRefs().get(0)).getResSharingScope());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testResourceRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceRef resRefBase = JavaeeFactory.eINSTANCE.createResourceRef();
resRefBase.setMappedName("mapped1");
resRefBase.setResRefName("refName1");
resRefBase.setResType("type1");
resRefBase.setResAuth(ResAuthType.APPLICATION_LITERAL);
resRefBase.setResSharingScope(ResSharingScopeType.SHAREABLE_LITERAL);
ResourceRef resRefToMerge = JavaeeFactory.eINSTANCE.createResourceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setResRefName("refName2");
resRefToMerge.setResType("type2");
resRefToMerge.setResAuth(ResAuthType.CONTAINER_LITERAL);
resRefToMerge.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL);
beanBase.getResourceRefs().add(resRefBase);
beanToMerge.getResourceRefs().add(resRefBase);
beanToMerge.getResourceRefs().add(resRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getResourceRefs().size());
ResourceRef test = getResRef(beanBase.getResourceRefs(), "refName1");
ResourceRef test2 = getResRef(beanBase.getResourceRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals("type1", test.getResType());
assertEquals(ResAuthType.APPLICATION_LITERAL, test.getResAuth());
assertEquals(ResSharingScopeType.SHAREABLE_LITERAL, test.getResSharingScope());
assertEquals("mapped2", test2.getMappedName());
assertEquals("type2", test2.getResType());
assertEquals(ResAuthType.CONTAINER_LITERAL, test2.getResAuth());
assertEquals(ResSharingScopeType.UNSHAREABLE_LITERAL, test2.getResSharingScope());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testResourceRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ResourceRef envRefBase = JavaeeFactory.eINSTANCE.createResourceRef();
envRefBase.setResRefName("refName1");
ResourceRef resRefToMerge = JavaeeFactory.eINSTANCE.createResourceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setResRefName("refName1");
resRefToMerge.setResType("type2");
resRefToMerge.setResAuth(ResAuthType.CONTAINER_LITERAL);
resRefToMerge.setResSharingScope(ResSharingScopeType.UNSHAREABLE_LITERAL);
beanBase.getResourceRefs().add(envRefBase);
beanToMerge.getResourceRefs().add(envRefBase);
beanToMerge.getResourceRefs().add(resRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getResourceRefs().size());
ResourceRef test = getResRef(beanBase.getResourceRefs(), "refName1");
assertEquals("type2", test.getResType());
assertEquals("mapped2", test.getMappedName());
assertEquals(ResAuthType.CONTAINER_LITERAL, test.getResAuth());
assertEquals(ResSharingScopeType.UNSHAREABLE_LITERAL, test.getResSharingScope());
}
private ResourceRef getResRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
ResourceRef ref = (ResourceRef) object;
if(name.equals(ref.getResRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testServiceRefBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ServiceRef serviceRefBase = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefBase.setMappedName("mapped1");
serviceRefBase.setServiceRefName("refName1");
// ServiceRefHandlerChains chains = JavaeeFactory.eINSTANCE.createServiceRefHandlerChains();
// ServiceRefHandlerChain chain = JavaeeFactory.eINSTANCE.createServiceRefHandlerChain();
// chains.getHandlerChains().add(chain);
// chain.
// resRefBase.setHandlerChains(chains);
serviceRefBase.setServiceInterface("interface1");
serviceRefBase.setWsdlFile("file1");
ServiceRef serviceRefMerge = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefMerge.setMappedName("mapped2");
serviceRefMerge.setServiceRefName("refName2");
serviceRefMerge.setServiceInterface("interface2");
serviceRefMerge.setWsdlFile("file2");
beanBase.getServiceRefs().add(serviceRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getServiceRefs().size());
assertEquals("mapped1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceRefName());
assertEquals("interface1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceInterface());
assertEquals("file1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getWsdlFile());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testServiceRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ServiceRef serviceRefBase = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefBase.setMappedName("mapped1");
serviceRefBase.setServiceRefName("refName1");
serviceRefBase.setServiceInterface("interface1");
serviceRefBase.setWsdlFile("file1");
ServiceRef serviceRefMerge = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefMerge.setMappedName("mapped2");
serviceRefMerge.setServiceRefName("refName2");
serviceRefMerge.setServiceInterface("interface2");
serviceRefMerge.setWsdlFile("file2");
beanToMerge.getServiceRefs().add(serviceRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getServiceRefs().size());
assertEquals("mapped1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceRefName());
assertEquals("interface1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceInterface());
assertEquals("file1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getWsdlFile());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testServiceRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ServiceRef serviceRefBase = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefBase.setMappedName("mapped1");
serviceRefBase.setServiceRefName("refName1");
serviceRefBase.setServiceInterface("interface1");
serviceRefBase.setWsdlFile("file1");
ServiceRef resRefToMerge = JavaeeFactory.eINSTANCE.createServiceRef();
resRefToMerge.setMappedName("mapped2");
resRefToMerge.setServiceRefName("refName2");
resRefToMerge.setServiceInterface("interface2");
resRefToMerge.setWsdlFile("file2");
beanBase.getServiceRefs().add(serviceRefBase);
beanToMerge.getServiceRefs().add(serviceRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getServiceRefs().size());
assertEquals("mapped1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getMappedName());
assertEquals("refName1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceRefName());
assertEquals("interface1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getServiceInterface());
assertEquals("file1", ((ServiceRef)beanBase.getServiceRefs().get(0)).getWsdlFile());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testServiceRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ServiceRef serviceRefBase = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefBase.setMappedName("mapped1");
serviceRefBase.setServiceRefName("refName1");
serviceRefBase.setServiceInterface("interface1");
serviceRefBase.setWsdlFile("file1");
ServiceRef serviceRefMerge = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefMerge.setMappedName("mapped2");
serviceRefMerge.setServiceRefName("refName2");
serviceRefMerge.setServiceInterface("interface2");
serviceRefMerge.setWsdlFile("file2");
beanBase.getServiceRefs().add(serviceRefBase);
beanToMerge.getServiceRefs().add(serviceRefBase);
beanToMerge.getServiceRefs().add(serviceRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getServiceRefs().size());
ServiceRef test = getServiceRef(beanBase.getServiceRefs(), "refName1");
ServiceRef test2 = getServiceRef(beanBase.getServiceRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals("interface1", test.getServiceInterface());
assertEquals("file1", test.getWsdlFile());
assertEquals("mapped2", test2.getMappedName());
assertEquals("interface2", test2.getServiceInterface());
assertEquals("file2", test2.getWsdlFile());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testServiceRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
ServiceRef serviceRefBase = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefBase.setServiceRefName("refName1");
ServiceRef serviceRefMerge = JavaeeFactory.eINSTANCE.createServiceRef();
serviceRefMerge.setMappedName("mapped2");
serviceRefMerge.setServiceRefName("refName1");
serviceRefMerge.setServiceInterface("interface2");
serviceRefMerge.setWsdlFile("file2");
beanBase.getServiceRefs().add(serviceRefBase);
beanToMerge.getServiceRefs().add(serviceRefBase);
beanToMerge.getServiceRefs().add(serviceRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getServiceRefs().size());
ServiceRef test = getServiceRef(beanBase.getServiceRefs(), "refName1");
assertEquals("interface2", test.getServiceInterface());
assertEquals("mapped2", test.getMappedName());
assertEquals("file2", test.getWsdlFile());
}
private ServiceRef getServiceRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
ServiceRef ref = (ServiceRef) object;
if(name.equals(ref.getServiceRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testPersistenceUnitRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceUnitRef persistenceUnitRefBase = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefBase.setMappedName("mapped1");
persistenceUnitRefBase.setPersistenceUnitRefName("refName1");
persistenceUnitRefBase.setPersistenceUnitName("type1");
PersistenceUnitRef persistenceUnitRefMerge = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefMerge.setMappedName("mapped2");
persistenceUnitRefMerge.setPersistenceUnitRefName("refName2");
persistenceUnitRefMerge.setPersistenceUnitName("type2");
beanBase.getPersistenceUnitRefs().add(persistenceUnitRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceUnitRefs().size());
assertEquals("mapped1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitRefName());
assertEquals("type1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitName());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testPersistenceUnitRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceUnitRef persistenceUnitRefBase = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefBase.setMappedName("mapped1");
persistenceUnitRefBase.setPersistenceUnitRefName("refName1");
persistenceUnitRefBase.setPersistenceUnitName("type1");
PersistenceUnitRef persistenceUnitRefMerge = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefMerge.setMappedName("mapped2");
persistenceUnitRefMerge.setPersistenceUnitRefName("refName2");
persistenceUnitRefMerge.setPersistenceUnitName("type2");
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceUnitRefs().size());
assertEquals("mapped1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitRefName());
assertEquals("type1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitName());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testPersistenceUnitRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceUnitRef persistenceUnitRefBase = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefBase.setMappedName("mapped1");
persistenceUnitRefBase.setPersistenceUnitRefName("refName1");
persistenceUnitRefBase.setPersistenceUnitName("type1");
PersistenceUnitRef persistenceUnitRefMerge = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefMerge.setMappedName("mapped2");
persistenceUnitRefMerge.setPersistenceUnitRefName("refName2");
persistenceUnitRefMerge.setPersistenceUnitName("type2");
beanBase.getPersistenceUnitRefs().add(persistenceUnitRefBase);
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceUnitRefs().size());
assertEquals("mapped1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitRefName());
assertEquals("type1", ((PersistenceUnitRef)beanBase.getPersistenceUnitRefs().get(0)).getPersistenceUnitName());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testPersistenceUnitRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceUnitRef persistenceUnitRefBase = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefBase.setMappedName("mapped1");
persistenceUnitRefBase.setPersistenceUnitRefName("refName1");
persistenceUnitRefBase.setPersistenceUnitName("type1");
PersistenceUnitRef persistenceUnitRefMerge = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefMerge.setMappedName("mapped2");
persistenceUnitRefMerge.setPersistenceUnitRefName("refName2");
persistenceUnitRefMerge.setPersistenceUnitName("type2");
beanBase.getPersistenceUnitRefs().add(persistenceUnitRefBase);
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefBase);
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getPersistenceUnitRefs().size());
PersistenceUnitRef test = getPersistUnitRef(beanBase.getPersistenceUnitRefs(), "refName1");
PersistenceUnitRef test2 = getPersistUnitRef(beanBase.getPersistenceUnitRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals("type1", test.getPersistenceUnitName());
assertEquals("mapped2", test2.getMappedName());
assertEquals("type2", test2.getPersistenceUnitName());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testPersistenceUnitRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceUnitRef persistenceUnitRefBase = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefBase.setPersistenceUnitRefName("refName1");
PersistenceUnitRef persistenceUnitRefMerge = JavaeeFactory.eINSTANCE.createPersistenceUnitRef();
persistenceUnitRefMerge.setMappedName("mapped2");
persistenceUnitRefMerge.setPersistenceUnitRefName("refName1");
persistenceUnitRefMerge.setPersistenceUnitName("type2");
beanBase.getPersistenceUnitRefs().add(persistenceUnitRefBase);
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefBase);
beanToMerge.getPersistenceUnitRefs().add(persistenceUnitRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceUnitRefs().size());
PersistenceUnitRef test = getPersistUnitRef(beanBase.getPersistenceUnitRefs(), "refName1");
assertEquals("type2", test.getPersistenceUnitName());
assertEquals("mapped2", test.getMappedName());
}
private PersistenceUnitRef getPersistUnitRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
PersistenceUnitRef ref = (PersistenceUnitRef) object;
if(name.equals(ref.getPersistenceUnitRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testPersistenceContextRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceContextRef persistenceContextRefBase = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefBase.setMappedName("mapped1");
persistenceContextRefBase.setPersistenceContextRefName("refName1");
persistenceContextRefBase.setPersistenceContextType(PersistenceContextType.EXTENDED_LITERAL);
PersistenceContextRef persistenceContextRefMerge = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefMerge.setMappedName("mapped2");
persistenceContextRefMerge.setPersistenceContextRefName("refName2");
persistenceContextRefMerge.setPersistenceContextType(PersistenceContextType.TRANSACTION_LITERAL);
beanBase.getPersistenceContextRefs().add(persistenceContextRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceContextRefs().size());
assertEquals("mapped1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextRefName());
assertEquals(PersistenceContextType.EXTENDED_LITERAL, ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextType());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testPersistenceContextRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceContextRef persistenceContextRefBase = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefBase.setMappedName("mapped1");
persistenceContextRefBase.setPersistenceContextRefName("refName1");
persistenceContextRefBase.setPersistenceContextType(PersistenceContextType.EXTENDED_LITERAL);
PersistenceContextRef persistenceContextRefMerge = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefMerge.setMappedName("mapped2");
persistenceContextRefMerge.setPersistenceContextRefName("refName2");
persistenceContextRefMerge.setPersistenceContextType(PersistenceContextType.TRANSACTION_LITERAL);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceContextRefs().size());
assertEquals("mapped1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextRefName());
assertEquals(PersistenceContextType.EXTENDED_LITERAL, ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextType());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testPersistenceContextRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceContextRef persistenceContextRefBase = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefBase.setMappedName("mapped1");
persistenceContextRefBase.setPersistenceContextRefName("refName1");
persistenceContextRefBase.setPersistenceContextType(PersistenceContextType.EXTENDED_LITERAL);
PersistenceContextRef persistenceContextRefMerge = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefMerge.setMappedName("mapped2");
persistenceContextRefMerge.setPersistenceContextRefName("refName2");
persistenceContextRefMerge.setPersistenceContextType(PersistenceContextType.TRANSACTION_LITERAL);
beanBase.getPersistenceContextRefs().add(persistenceContextRefBase);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceContextRefs().size());
assertEquals("mapped1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getMappedName());
assertEquals("refName1", ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextRefName());
assertEquals(PersistenceContextType.EXTENDED_LITERAL, ((PersistenceContextRef)beanBase.getPersistenceContextRefs().get(0)).getPersistenceContextType());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testPersistenceContextRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceContextRef persistenceContextRefBase = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefBase.setMappedName("mapped1");
persistenceContextRefBase.setPersistenceContextRefName("refName1");
persistenceContextRefBase.setPersistenceContextType(PersistenceContextType.EXTENDED_LITERAL);
PersistenceContextRef persistenceContextRefMerge = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefMerge.setMappedName("mapped2");
persistenceContextRefMerge.setPersistenceContextRefName("refName2");
persistenceContextRefMerge.setPersistenceContextType(PersistenceContextType.TRANSACTION_LITERAL);
beanBase.getPersistenceContextRefs().add(persistenceContextRefBase);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefBase);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getPersistenceContextRefs().size());
PersistenceContextRef test = getPersistenceCintextRef(beanBase.getPersistenceContextRefs(), "refName1");
PersistenceContextRef test2 = getPersistenceCintextRef(beanBase.getPersistenceContextRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals(PersistenceContextType.EXTENDED_LITERAL, test.getPersistenceContextType());
assertEquals("mapped2", test2.getMappedName());
assertEquals(PersistenceContextType.TRANSACTION_LITERAL, test2.getPersistenceContextType());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testPersistenceContextRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
PersistenceContextRef persistenceContextRefBase = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefBase.setPersistenceContextRefName("refName1");
PersistenceContextRef persistenceContextRefMerge = JavaeeFactory.eINSTANCE.createPersistenceContextRef();
persistenceContextRefMerge.setMappedName("mapped2");
persistenceContextRefMerge.setPersistenceContextRefName("refName1");
persistenceContextRefMerge.setPersistenceContextType(PersistenceContextType.TRANSACTION_LITERAL);
beanBase.getPersistenceContextRefs().add(persistenceContextRefBase);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefBase);
beanToMerge.getPersistenceContextRefs().add(persistenceContextRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getPersistenceContextRefs().size());
PersistenceContextRef test = getPersistenceCintextRef(beanBase.getPersistenceContextRefs(), "refName1");
assertEquals(PersistenceContextType.TRANSACTION_LITERAL, test.getPersistenceContextType());
assertEquals("mapped2", test.getMappedName());
}
private PersistenceContextRef getPersistenceCintextRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
PersistenceContextRef ref = (PersistenceContextRef) object;
if(name.equals(ref.getPersistenceContextRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testMessageDestinationRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
MessageDestinationRef messageDestRefBase = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefBase.setMappedName("mapped1");
messageDestRefBase.setMessageDestinationRefName("refName1");
messageDestRefBase.setMessageDestinationType("type1");
messageDestRefBase.setMessageDestinationLink("link1");
messageDestRefBase.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_LITERAL);
MessageDestinationRef messageDestRefMerge = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefMerge.setMappedName("mapped2");
messageDestRefMerge.setMessageDestinationRefName("refName2");
messageDestRefMerge.setMessageDestinationType("type2");
messageDestRefMerge.setMessageDestinationLink("link2");
messageDestRefMerge.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL);
beanBase.getMessageDestinationRefs().add(messageDestRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getMessageDestinationRefs().size());
assertEquals("mapped1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMappedName());
assertEquals("refName1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationRefName());
assertEquals("type1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationType());
assertEquals("link1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_LITERAL, ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationUsage());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testMessageDestinationRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
MessageDestinationRef messageDestRefBase = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefBase.setMappedName("mapped1");
messageDestRefBase.setMessageDestinationRefName("refName1");
messageDestRefBase.setMessageDestinationType("type1");
messageDestRefBase.setMessageDestinationLink("link1");
messageDestRefBase.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_LITERAL);
MessageDestinationRef messageDestRefMerge = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefMerge.setMappedName("mapped2");
messageDestRefMerge.setMessageDestinationRefName("refName2");
messageDestRefMerge.setMessageDestinationType("type2");
messageDestRefMerge.setMessageDestinationLink("link2");
messageDestRefMerge.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL);
beanToMerge.getMessageDestinationRefs().add(messageDestRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getMessageDestinationRefs().size());
assertEquals("mapped1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMappedName());
assertEquals("refName1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationRefName());
assertEquals("type1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationType());
assertEquals("link1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_LITERAL, ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationUsage());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testMessageDestinationRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
MessageDestinationRef messageDestRefBase = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefBase.setMappedName("mapped1");
messageDestRefBase.setMessageDestinationRefName("refName1");
messageDestRefBase.setMessageDestinationType("type1");
messageDestRefBase.setMessageDestinationLink("link1");
messageDestRefBase.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_LITERAL);
MessageDestinationRef messageDestRefMerge = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefMerge.setMappedName("mapped2");
messageDestRefMerge.setMessageDestinationRefName("refName2");
messageDestRefMerge.setMessageDestinationType("type2");
messageDestRefMerge.setMessageDestinationLink("link2");
messageDestRefMerge.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL);
beanBase.getMessageDestinationRefs().add(messageDestRefBase);
beanToMerge.getMessageDestinationRefs().add(messageDestRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getMessageDestinationRefs().size());
assertEquals("mapped1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMappedName());
assertEquals("refName1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationRefName());
assertEquals("type1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationType());
assertEquals("link1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_LITERAL, ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationUsage());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testMessageDestinationRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
MessageDestinationRef messageDestRefBase = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefBase.setMappedName("mapped1");
messageDestRefBase.setMessageDestinationRefName("refName1");
messageDestRefBase.setMessageDestinationType("type1");
messageDestRefBase.setMessageDestinationLink("link1");
messageDestRefBase.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_LITERAL);
MessageDestinationRef messageDestRefMerge = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefMerge.setMappedName("mapped2");
messageDestRefMerge.setMessageDestinationRefName("refName2");
messageDestRefMerge.setMessageDestinationType("type2");
messageDestRefMerge.setMessageDestinationLink("link2");
messageDestRefMerge.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL);
beanBase.getMessageDestinationRefs().add(messageDestRefBase);
beanToMerge.getMessageDestinationRefs().add(messageDestRefBase);
beanToMerge.getMessageDestinationRefs().add(messageDestRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getMessageDestinationRefs().size());
MessageDestinationRef test = getMessageRef(beanBase.getMessageDestinationRefs(), "refName1");
MessageDestinationRef test2 = getMessageRef(beanBase.getMessageDestinationRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals("type1", test.getMessageDestinationType());
assertEquals("link1", ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_LITERAL, ((MessageDestinationRef)beanBase.getMessageDestinationRefs().get(0)).getMessageDestinationUsage());
assertEquals("mapped2", test2.getMappedName());
assertEquals("type2", test2.getMessageDestinationType());
assertEquals("link2", test2.getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL, test2.getMessageDestinationUsage());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testMessageDestinationRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
MessageDestinationRef messageDestRefBase = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefBase.setMessageDestinationRefName("refName1");
MessageDestinationRef messageDestRefMerge = JavaeeFactory.eINSTANCE.createMessageDestinationRef();
messageDestRefMerge.setMappedName("mapped2");
messageDestRefMerge.setMessageDestinationRefName("refName1");
messageDestRefMerge.setMessageDestinationType("type2");
messageDestRefMerge.setMessageDestinationLink("link2");
messageDestRefMerge.setMessageDestinationUsage(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL);
beanBase.getMessageDestinationRefs().add(messageDestRefBase);
beanToMerge.getMessageDestinationRefs().add(messageDestRefBase);
beanToMerge.getMessageDestinationRefs().add(messageDestRefMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getMessageDestinationRefs().size());
MessageDestinationRef test = getMessageRef(beanBase.getMessageDestinationRefs(), "refName1");
assertEquals("type2", test.getMessageDestinationType());
assertEquals("mapped2", test.getMappedName());
assertEquals("link2", test.getMessageDestinationLink());
assertEquals(MessageDestinationUsageType.CONSUMES_PRODUCES_LITERAL, test.getMessageDestinationUsage());
}
private MessageDestinationRef getMessageRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
MessageDestinationRef ref = (MessageDestinationRef) object;
if(name.equals(ref.getMessageDestinationRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testEjbRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbRef ejbRefBase = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefBase.setMappedName("mapped1");
ejbRefBase.setEjbRefName("refName1");
ejbRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbRefBase.setEjbLink("link1");
ejbRefBase.setHome("home1");
ejbRefBase.setRemote("remote1");
EjbRef ejbRefToMerge = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToMerge.setMappedName("mapped2");
ejbRefToMerge.setEjbRefName("refName2");
ejbRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbRefToMerge.setEjbLink("link2");
ejbRefToMerge.setHome("home2");
ejbRefToMerge.setRemote("remote2");
beanBase.getEjbRefs().add(ejbRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbRefs().size());
assertEquals("mapped1", ((EjbRef)beanBase.getEjbRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbRef)beanBase.getEjbRefs().get(0)).getHome());
assertEquals("remote1", ((EjbRef)beanBase.getEjbRefs().get(0)).getRemote());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testEjbRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbRef ejbRefBase = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefBase.setMappedName("mapped1");
ejbRefBase.setEjbRefName("refName1");
ejbRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbRefBase.setEjbLink("link1");
ejbRefBase.setHome("home1");
ejbRefBase.setRemote("remote1");
EjbRef ejbRefToMerge = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToMerge.setMappedName("mapped2");
ejbRefToMerge.setEjbRefName("refName2");
ejbRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbRefToMerge.setEjbLink("link2");
ejbRefToMerge.setHome("home2");
ejbRefToMerge.setRemote("remote2");
beanToMerge.getEjbRefs().add(ejbRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbRefs().size());
assertEquals("mapped1", ((EjbRef)beanBase.getEjbRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbRef)beanBase.getEjbRefs().get(0)).getHome());
assertEquals("remote1", ((EjbRef)beanBase.getEjbRefs().get(0)).getRemote());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testEjbRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbRef ejbRefBase = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefBase.setMappedName("mapped1");
ejbRefBase.setEjbRefName("refName1");
ejbRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbRefBase.setEjbLink("link1");
ejbRefBase.setHome("home1");
ejbRefBase.setRemote("remote1");
EjbRef ejbRefToMerge = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToMerge.setMappedName("mapped2");
ejbRefToMerge.setEjbRefName("refName2");
ejbRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbRefToMerge.setEjbLink("link2");
ejbRefToMerge.setHome("home2");
ejbRefToMerge.setRemote("remote2");
beanBase.getEjbRefs().add(ejbRefBase);
beanToMerge.getEjbRefs().add(ejbRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbRefs().size());
assertEquals("mapped1", ((EjbRef)beanBase.getEjbRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbRef)beanBase.getEjbRefs().get(0)).getHome());
assertEquals("remote1", ((EjbRef)beanBase.getEjbRefs().get(0)).getRemote());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testEjbRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbRef ejbRefBase = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefBase.setMappedName("mapped1");
ejbRefBase.setEjbRefName("refName1");
ejbRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbRefBase.setEjbLink("link1");
ejbRefBase.setHome("home1");
ejbRefBase.setRemote("remote1");
EjbRef ejbRefToMerge = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToMerge.setMappedName("mapped2");
ejbRefToMerge.setEjbRefName("refName2");
ejbRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbRefToMerge.setEjbLink("link2");
ejbRefToMerge.setHome("home2");
ejbRefToMerge.setRemote("remote2");
beanBase.getEjbRefs().add(ejbRefBase);
beanToMerge.getEjbRefs().add(ejbRefBase);
beanToMerge.getEjbRefs().add(ejbRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getEjbRefs().size());
EjbRef test = getEjbRef(beanBase.getEjbRefs(), "refName1");
EjbRef test2 = getEjbRef(beanBase.getEjbRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals(EjbRefType.SESSION_LITERAL, test.getEjbRefType());
assertEquals("link1", ((EjbRef)beanBase.getEjbRefs().get(0)).getEjbLink());
assertEquals("home1", test.getHome());
assertEquals("remote1", test.getRemote());
assertEquals("mapped2", test2.getMappedName());
assertEquals(EjbRefType.ENTITY_LITERAL, test2.getEjbRefType());
assertEquals("link2", test2.getEjbLink());
assertEquals("home2", test2.getHome());
assertEquals("remote2", test2.getRemote());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testEjbRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToLink = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
beanToLink.setEjbName("name");
EjbRef ejbRefBase = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefBase.setEjbRefName("refName1");
EjbRef ejbRefToMerge = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToMerge.setMappedName("mapped2");
ejbRefToMerge.setEjbRefName("refName1");
ejbRefToMerge.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbRefToMerge.setEjbLink("link2");
ejbRefToMerge.setHome("home2");
ejbRefToMerge.setRemote("remote2");
EjbRef ejbRefToLink = JavaeeFactory.eINSTANCE.createEjbRef();
ejbRefToLink.setEjbRefName("refName199");
ejbRefToLink.setEjbLink("link2");
beanBase.getEjbRefs().add(ejbRefBase);
beanToMerge.getEjbRefs().add(ejbRefBase);
beanToMerge.getEjbRefs().add(ejbRefToMerge);
beanToLink.getEjbRefs().add(ejbRefToLink);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbRefs().size());
EjbRef test = getEjbRef(beanBase.getEjbRefs(), "refName1");
assertEquals(EjbRefType.SESSION_LITERAL, test.getEjbRefType());
assertEquals("mapped2", test.getMappedName());
assertEquals("link2", test.getEjbLink());
assertEquals("home2", test.getHome());
assertEquals("remote2", test.getRemote());
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
}
private EjbRef getEjbRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
EjbRef ref = (EjbRef) object;
if(name.equals(ref.getEjbRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testEjbLocalRefsBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbLocalRef ejbLocalRefBase = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefBase.setMappedName("mapped1");
ejbLocalRefBase.setEjbRefName("refName1");
ejbLocalRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbLocalRefBase.setEjbLink("link1");
ejbLocalRefBase.setLocalHome("home1");
ejbLocalRefBase.setLocal("remote1");
EjbLocalRef ejbLocalRefToMerge = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToMerge.setMappedName("mapped2");
ejbLocalRefToMerge.setEjbRefName("refName2");
ejbLocalRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbLocalRefToMerge.setEjbLink("link2");
ejbLocalRefToMerge.setLocalHome("home2");
ejbLocalRefToMerge.setLocal("remote2");
beanBase.getEjbLocalRefs().add(ejbLocalRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbLocalRefs().size());
assertEquals("mapped1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocalHome());
assertEquals("remote1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocal());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testEjbLocalRefsMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbLocalRef envRefBase = JavaeeFactory.eINSTANCE.createEjbLocalRef();
envRefBase.setMappedName("mapped1");
envRefBase.setEjbRefName("refName1");
envRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
envRefBase.setEjbLink("link1");
envRefBase.setLocalHome("home1");
envRefBase.setLocal("remote1");
EjbLocalRef ejbLocalRefToMerge = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToMerge.setMappedName("mapped2");
ejbLocalRefToMerge.setEjbRefName("refName2");
ejbLocalRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbLocalRefToMerge.setEjbLink("link2");
ejbLocalRefToMerge.setLocalHome("home2");
ejbLocalRefToMerge.setLocal("remote2");
beanToMerge.getEjbLocalRefs().add(envRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbLocalRefs().size());
assertEquals("mapped1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocalHome());
assertEquals("remote1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocal());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testEjbLocalRefsSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbLocalRef ejbLocalRefBase = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefBase.setMappedName("mapped1");
ejbLocalRefBase.setEjbRefName("refName1");
ejbLocalRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbLocalRefBase.setEjbLink("link1");
ejbLocalRefBase.setLocalHome("home1");
ejbLocalRefBase.setLocal("remote1");
EjbLocalRef ejbLocalRefToMerge = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToMerge.setMappedName("mapped2");
ejbLocalRefToMerge.setEjbRefName("refName2");
ejbLocalRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbLocalRefToMerge.setEjbLink("link2");
ejbLocalRefToMerge.setLocalHome("home2");
ejbLocalRefToMerge.setLocal("remote2");
beanBase.getEjbLocalRefs().add(ejbLocalRefBase);
beanToMerge.getEjbLocalRefs().add(ejbLocalRefBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbLocalRefs().size());
assertEquals("mapped1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getMappedName());
assertEquals("refName1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefName());
assertEquals(EjbRefType.SESSION_LITERAL, ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbRefType());
assertEquals("link1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbLink());
assertEquals("home1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocalHome());
assertEquals("remote1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getLocal());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testEjbLocalRefsComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EjbLocalRef ejbLocalRefBase = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefBase.setMappedName("mapped1");
ejbLocalRefBase.setEjbRefName("refName1");
ejbLocalRefBase.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbLocalRefBase.setEjbLink("link1");
ejbLocalRefBase.setLocalHome("home1");
ejbLocalRefBase.setLocal("remote1");
EjbLocalRef ejbLocalRefToMerge = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToMerge.setMappedName("mapped2");
ejbLocalRefToMerge.setEjbRefName("refName2");
ejbLocalRefToMerge.setEjbRefType(EjbRefType.ENTITY_LITERAL);
ejbLocalRefToMerge.setEjbLink("link2");
ejbLocalRefToMerge.setLocalHome("home2");
ejbLocalRefToMerge.setLocal("remote2");
beanBase.getEjbLocalRefs().add(ejbLocalRefBase);
beanToMerge.getEjbLocalRefs().add(ejbLocalRefBase);
beanToMerge.getEjbLocalRefs().add(ejbLocalRefToMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getEjbLocalRefs().size());
EjbLocalRef test = getEjbLocalRef(beanBase.getEjbLocalRefs(), "refName1");
EjbLocalRef test2 = getEjbLocalRef(beanBase.getEjbLocalRefs(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals(EjbRefType.SESSION_LITERAL, test.getEjbRefType());
assertEquals("link1", ((EjbLocalRef)beanBase.getEjbLocalRefs().get(0)).getEjbLink());
assertEquals("home1", test.getLocalHome());
assertEquals("remote1", test.getLocal());
assertEquals("mapped2", test2.getMappedName());
assertEquals(EjbRefType.ENTITY_LITERAL, test2.getEjbRefType());
assertEquals("link2", test2.getEjbLink());
assertEquals("home2", test2.getLocalHome());
assertEquals("remote2", test2.getLocal());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testEjbLocalRefsComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToLink = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
beanToLink.setEjbName("name");
EjbLocalRef ejbLocalRefBase = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefBase.setEjbRefName("refName1");
EjbLocalRef ejbLocalRefToMerge = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToMerge.setMappedName("mapped2");
ejbLocalRefToMerge.setEjbRefName("refName1");
ejbLocalRefToMerge.setEjbRefType(EjbRefType.SESSION_LITERAL);
ejbLocalRefToMerge.setEjbLink("link2");
ejbLocalRefToMerge.setLocalHome("home2");
ejbLocalRefToMerge.setLocal("remote2");
EjbLocalRef ejbLocalRefToLink = JavaeeFactory.eINSTANCE.createEjbLocalRef();
ejbLocalRefToLink.setEjbRefName("refName199");
ejbLocalRefToLink.setEjbLink("link2");
beanBase.getEjbLocalRefs().add(ejbLocalRefBase);
beanToMerge.getEjbLocalRefs().add(ejbLocalRefBase);
beanToMerge.getEjbLocalRefs().add(ejbLocalRefToMerge);
beanToLink.getEjbLocalRefs().add(ejbLocalRefToLink);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEjbLocalRefs().size());
EjbLocalRef test = getEjbLocalRef(beanBase.getEjbLocalRefs(), "refName1");
assertEquals(EjbRefType.SESSION_LITERAL, test.getEjbRefType());
assertEquals("mapped2", test.getMappedName());
assertEquals("link2", test.getEjbLink());
assertEquals("home2", test.getLocalHome());
assertEquals("remote2", test.getLocal());
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
}
private EjbLocalRef getEjbLocalRef(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
EjbLocalRef ref = (EjbLocalRef) object;
if(name.equals(ref.getEjbRefName())){
return ref;
}
}
return null;
}
/**
* Base suffix means that the base object has some info and
* toMerge is empty: nothing should be merged
* @throws Exception
*/
//@Test
public void testEnvEntrysBase() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EnvEntry envEntryBase = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryBase.setMappedName("mapped1");
envEntryBase.setEnvEntryName("refName1");
envEntryBase.setEnvEntryType(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL);
envEntryBase.setEnvEntryValue("true");
EnvEntry envEntryMerge = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryMerge.setMappedName("mapped2");
envEntryMerge.setEnvEntryName("refName2");
envEntryMerge.setEnvEntryType(EnvEntryType.JAVA_LANG_BYTE_LITERAL);
envEntryMerge.setEnvEntryValue("00");
beanBase.getEnvEntries().add(envEntryBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEnvEntries().size());
assertEquals("mapped1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getMappedName());
assertEquals("refName1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryName());
assertEquals(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL.getLiteral(), ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryType());
assertEquals("true", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryValue());
}
/**
* ToMerge suffix means that the base is empty object and
* toMerge has some info: all from merge should be present in base.
* @throws Exception
*/
//@Test
public void testEnvEntrysMerge() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EnvEntry envEntryBase = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryBase.setMappedName("mapped1");
envEntryBase.setEnvEntryName("refName1");
envEntryBase.setEnvEntryType(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL);
envEntryBase.setEnvEntryValue("true");
EnvEntry envEntryMerge = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryMerge.setMappedName("mapped2");
envEntryMerge.setEnvEntryName("refName2");
envEntryMerge.setEnvEntryType(EnvEntryType.JAVA_LANG_BYTE_LITERAL);
envEntryMerge.setEnvEntryValue("00");
beanToMerge.getEnvEntries().add(envEntryBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEnvEntries().size());
assertEquals("mapped1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getMappedName());
assertEquals("refName1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryName());
assertEquals(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL.getLiteral(), ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryType());
assertEquals("true", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryValue());
}
/**
* Same suffix means that the information in merge and base is one
* and the same: no merge should occurred and additional checks for
* doubling of the elements are present.
* @throws Exception
*/
//@Test
public void testEnvEntrysSame() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EnvEntry envEntryBase = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryBase.setMappedName("mapped1");
envEntryBase.setEnvEntryName("refName1");
envEntryBase.setEnvEntryType(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL);
envEntryBase.setEnvEntryValue("true");
EnvEntry envEntryMerge = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryMerge.setMappedName("mapped2");
envEntryMerge.setEnvEntryName("refName2");
envEntryMerge.setEnvEntryType(EnvEntryType.JAVA_LANG_BYTE_LITERAL);
envEntryMerge.setEnvEntryValue("00");
beanBase.getEnvEntries().add(envEntryBase);
beanToMerge.getEnvEntries().add(envEntryBase);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEnvEntries().size());
assertEquals("mapped1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getMappedName());
assertEquals("refName1", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryName());
assertEquals(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL.getLiteral(), ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryType());
assertEquals("true", ((EnvEntry)beanBase.getEnvEntries().get(0)).getEnvEntryValue());
}
/**
* Complex suffix means variety of information is present in base
* and to merge: consistent information combined by base and toMerge
* should be available at the end.
* @throws Exception
*/
//@Test
public void testEnvEntrysComplex() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EnvEntry envEntryBase = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryBase.setMappedName("mapped1");
envEntryBase.setEnvEntryName("refName1");
envEntryBase.setEnvEntryType(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL);
envEntryBase.setEnvEntryValue("true");
EnvEntry envEntryMerge = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryMerge.setMappedName("mapped2");
envEntryMerge.setEnvEntryName("refName2");
envEntryMerge.setEnvEntryType(EnvEntryType.JAVA_LANG_BYTE_LITERAL);
envEntryMerge.setEnvEntryValue("00");
beanBase.getEnvEntries().add(envEntryBase);
beanToMerge.getEnvEntries().add(envEntryBase);
beanToMerge.getEnvEntries().add(envEntryMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(2, beanBase.getEnvEntries().size());
EnvEntry test = getEnvEntry(beanBase.getEnvEntries(), "refName1");
EnvEntry test2 = getEnvEntry(beanBase.getEnvEntries(), "refName2");
assertEquals("mapped1", test.getMappedName());
assertEquals(EnvEntryType.JAVA_LANG_BOOLEAN_LITERAL.getLiteral(), test.getEnvEntryType());
assertEquals("true", test.getEnvEntryValue());
assertEquals("mapped2", test2.getMappedName());
assertEquals(EnvEntryType.JAVA_LANG_BYTE_LITERAL.getLiteral(), test2.getEnvEntryType());
assertEquals("00", test2.getEnvEntryValue());
}
/**
* ComplexOverlapped suffix means variety of information is present
* in base and to merge: consistent information combined by base and toMerge
* should be available at the end. There are artifacts with one and the same
* name and different values: values should be merged into base.
* @throws Exception
*/
//@Test
public void testEnvEntrysComplexOverlapped() throws Exception {
SessionBean beanBase = EjbFactory.eINSTANCE.createSessionBean();
SessionBean beanToMerge = EjbFactory.eINSTANCE.createSessionBean();
beanBase.setEjbName("name");
beanToMerge.setEjbName("name");
EnvEntry envEntryBase = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryBase.setEnvEntryName("refName1");
EnvEntry envEntryMerge = JavaeeFactory.eINSTANCE.createEnvEntry();
envEntryMerge.setMappedName("mapped2");
envEntryMerge.setEnvEntryName("refName1");
envEntryMerge.setEnvEntryType(EnvEntryType.JAVA_LANG_BYTE_LITERAL);
envEntryMerge.setEnvEntryValue("00");
beanBase.getEnvEntries().add(envEntryBase);
beanToMerge.getEnvEntries().add(envEntryBase);
beanToMerge.getEnvEntries().add(envEntryMerge);
(new JNDIRefsMerger(beanBase, beanToMerge, 0)).process();
assertEquals(1, beanBase.getEnvEntries().size());
EnvEntry test = getEnvEntry(beanBase.getEnvEntries(), "refName1");
assertEquals(EnvEntryType.JAVA_LANG_BYTE_LITERAL.getLiteral(), test.getEnvEntryType());
assertEquals("mapped2", test.getMappedName());
assertEquals("00", test.getEnvEntryValue());
}
private EnvEntry getEnvEntry(List refs, String name){
if (name == null){
return null;
}
for (Object object : refs) {
EnvEntry ref = (EnvEntry) object;
if(name.equals(ref.getEnvEntryName())){
return ref;
}
}
return null;
}
}