[271096] added support for merge of security constraints - junit tests
diff --git a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/mergers/tests/WebAppMergerTest.java b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/mergers/tests/WebAppMergerTest.java index 2dc16fd..2130672 100644 --- a/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/mergers/tests/WebAppMergerTest.java +++ b/tests/org.eclipse.jst.j2ee.tests/j2ee-tests/org/eclipse/jst/jee/model/mergers/tests/WebAppMergerTest.java
@@ -18,14 +18,18 @@ import org.eclipse.jst.javaee.core.JavaeeFactory; import org.eclipse.jst.javaee.core.RunAs; import org.eclipse.jst.javaee.core.SecurityRole; +import org.eclipse.jst.javaee.web.AuthConstraint; +import org.eclipse.jst.javaee.web.SecurityConstraint; import org.eclipse.jst.javaee.web.Servlet; +import org.eclipse.jst.javaee.web.TransportGuaranteeType; +import org.eclipse.jst.javaee.web.UserDataConstraint; import org.eclipse.jst.javaee.web.WebApp; import org.eclipse.jst.javaee.web.WebFactory; import org.eclipse.jst.jee.model.internal.mergers.ModelException; import org.eclipse.jst.jee.model.internal.mergers.WebAppMerger; /** - * Tester class for EjbJar artifact. + * Tester class for WebAPp artifact. * * Base suffix means that the base object has some info and * toMerge is empty: nothing should be merged @@ -52,267 +56,324 @@ */ public class WebAppMergerTest extends TestCase{ - /** - * Tests the merger with Base security role only. - * No merge is necessary - * - * @throws ModelException - */ - //@Test - public void testSingleSecurityRoleCaseBase() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); - role.setRoleName("test1"); - - descriptorBase.getSecurityRoles().add(role); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(descriptorBase.getSecurityRoles()); - Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 1); - Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 0); - Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); - } - - /** - * Tests the merger with toMerge security role only. - * The role should be copied in base. - * - * @throws ModelException - */ - //@Test - public void testSingleSecurityRoleCaseToMerge() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); - role.setRoleName("test1"); - - descriptorToMerge.getSecurityRoles().add(role); - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(descriptorBase.getSecurityRoles()); - Assert.assertEquals(1, descriptorBase.getSecurityRoles().size()); - Assert.assertEquals(1, descriptorToMerge.getSecurityRoles().size()); - Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); - } - - /** - * Tests the merger with one and the same security role. - * The result should be non merged 1 security role. - * - * @throws ModelException - */ - //@Test - public void testSingleSecurityRoleCaseSameRole() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); - role.setRoleName("test1"); - descriptorBase.getSecurityRoles().add(role); - descriptorToMerge.getSecurityRoles().add(role); - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(descriptorBase.getSecurityRoles()); - Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 1); - Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 1); - Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); - } - - /** - * Tests the merger with variety of security roles. - * - * @throws ModelException - */ - //@Test - public void testSingleSecurityRoleCaseComplex() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - SecurityRole role0 = JavaeeFactory.eINSTANCE.createSecurityRole(); - SecurityRole role1 = JavaeeFactory.eINSTANCE.createSecurityRole(); - SecurityRole role2 = JavaeeFactory.eINSTANCE.createSecurityRole(); - SecurityRole role3 = JavaeeFactory.eINSTANCE.createSecurityRole(); - SecurityRole role4 = JavaeeFactory.eINSTANCE.createSecurityRole(); - SecurityRole role5 = JavaeeFactory.eINSTANCE.createSecurityRole(); - role0.setRoleName("test1"); - role1.setRoleName("test2"); - role2.setRoleName("test3"); - role3.setRoleName("test4"); - role4.setRoleName("test5"); - role5.setRoleName("test6"); - - - - descriptorBase.getSecurityRoles().add(role1); - descriptorBase.getSecurityRoles().add(role3); - descriptorBase.getSecurityRoles().add(role4); - descriptorBase.getSecurityRoles().add(role5); - - - descriptorToMerge.getSecurityRoles().add(role0); - descriptorToMerge.getSecurityRoles().add(role1); - descriptorToMerge.getSecurityRoles().add(role2); - - - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(descriptorBase.getSecurityRoles()); - Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 6); - Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 3); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role0.getRoleName())); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role1.getRoleName())); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role2.getRoleName())); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role3.getRoleName())); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role4.getRoleName())); - Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role5.getRoleName())); - } + /** + * Tests the merger with Base security role only. + * No merge is necessary + * + * @throws ModelException + */ + //@Test + public void testSingleSecurityRoleCaseBase() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); + role.setRoleName("test1"); - private boolean containsSecRole(List list, String roleName) { - - - for (Object object : list) { - SecurityRole role = (SecurityRole) object; - if(roleName == null){ - if(roleName == role.getRoleName()){ - return true; - } - } else if(roleName.equals(role.getRoleName())){ - return true; - } - } - return false; - } - - - /** - * Tests the merger with Base security role only. - * No merge is necessary - * - * @throws ModelException - */ - //@Test - public void testSingleRunAsCaseBase() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); - Servlet servletBase = WebFactory.eINSTANCE.createServlet(); - servletBase.setServletName("servName"); - Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); - servletMerge.setServletName("servName"); - role.setRoleName("test1"); - servletBase.setRunAs(role); - - descriptorBase.getServlets().add(servletBase); - descriptorToMerge.getServlets().add(servletMerge); - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(servletBase.getRunAs()); - Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); - } - - /** - * Tests the merger with toMerge security role only. - * The role should be copied in base. - * - * @throws ModelException - */ - //@Test - public void testSingleRunAsCaseToMerge() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); - Servlet servletBase = WebFactory.eINSTANCE.createServlet(); - servletBase.setServletName("servName"); - Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); - servletMerge.setServletName("servName"); - role.setRoleName("test1"); - servletMerge.setRunAs(role); - - descriptorBase.getServlets().add(servletBase); - descriptorToMerge.getServlets().add(servletMerge); - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(servletBase.getRunAs()); - Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); - Assert.assertEquals(1, descriptorBase.getServlets().size()); - } - - - /** - * Tests the merger with null named servlet in toMerge array, the merger should ignore such entries. - * - * @throws ModelException - */ - //@Test - public void testSingleNullServletToMerge() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - Servlet servletBase = WebFactory.eINSTANCE.createServlet(); - - descriptorToMerge.getServlets().add(servletBase); - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertEquals(0, descriptorBase.getServlets().size()); - } - - /** - * Tests the merger with null named servlet in Base, as this is extremely unlikely - * the merger should not stop merging because of such error. - * - * @throws ModelException - */ - //@Test - public void testSingleNullNamedServletInBase() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - Servlet servletBase = WebFactory.eINSTANCE.createServlet(); - Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); - servletMerge.setServletName("servName"); - - descriptorBase.getServlets().add(servletBase); - descriptorToMerge.getServlets().add(servletMerge); - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertEquals(2, descriptorBase.getServlets().size()); - } - - /** - * Tests the merger with one and the same security role. - * The result should be non merged 1 security role. - * - * @throws ModelException - */ - //@Test - public void testSingleRunAsCaseSameRole() throws ModelException{ - WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); - WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); - RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); - Servlet servletBase = WebFactory.eINSTANCE.createServlet(); - servletBase.setServletName("servName"); - Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); - servletMerge.setServletName("servName"); - role.setRoleName("test1"); - servletBase.setRunAs(role); - servletMerge.setRunAs(role); - - descriptorBase.getServlets().add(servletBase); - descriptorToMerge.getServlets().add(servletMerge); - - - WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); - result.process(); - Assert.assertNotNull(servletBase.getRunAs()); - Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); - } + descriptorBase.getSecurityRoles().add(role); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(descriptorBase.getSecurityRoles()); + Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 1); + Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 0); + Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); + } + + /** + * Tests the merger with toMerge security role only. + * The role should be copied in base. + * + * @throws ModelException + */ + //@Test + public void testSingleSecurityRoleCaseToMerge() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); + role.setRoleName("test1"); + + descriptorToMerge.getSecurityRoles().add(role); + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(descriptorBase.getSecurityRoles()); + Assert.assertEquals(1, descriptorBase.getSecurityRoles().size()); + Assert.assertEquals(1, descriptorToMerge.getSecurityRoles().size()); + Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); + } + + /** + * Tests the merger with one and the same security role. + * The result should be non merged 1 security role. + * + * @throws ModelException + */ + //@Test + public void testSingleSecurityRoleCaseSameRole() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + SecurityRole role = JavaeeFactory.eINSTANCE.createSecurityRole(); + role.setRoleName("test1"); + descriptorBase.getSecurityRoles().add(role); + descriptorToMerge.getSecurityRoles().add(role); + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(descriptorBase.getSecurityRoles()); + Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 1); + Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 1); + Assert.assertTrue(((SecurityRole)descriptorBase.getSecurityRoles().get(0)).getRoleName().equals("test1")); + } + + /** + * Tests the merger with variety of security roles. + * + * @throws ModelException + */ + //@Test + public void testSingleSecurityRoleCaseComplex() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + SecurityRole role0 = JavaeeFactory.eINSTANCE.createSecurityRole(); + SecurityRole role1 = JavaeeFactory.eINSTANCE.createSecurityRole(); + SecurityRole role2 = JavaeeFactory.eINSTANCE.createSecurityRole(); + SecurityRole role3 = JavaeeFactory.eINSTANCE.createSecurityRole(); + SecurityRole role4 = JavaeeFactory.eINSTANCE.createSecurityRole(); + SecurityRole role5 = JavaeeFactory.eINSTANCE.createSecurityRole(); + role0.setRoleName("test1"); + role1.setRoleName("test2"); + role2.setRoleName("test3"); + role3.setRoleName("test4"); + role4.setRoleName("test5"); + role5.setRoleName("test6"); + + + + descriptorBase.getSecurityRoles().add(role1); + descriptorBase.getSecurityRoles().add(role3); + descriptorBase.getSecurityRoles().add(role4); + descriptorBase.getSecurityRoles().add(role5); + + + descriptorToMerge.getSecurityRoles().add(role0); + descriptorToMerge.getSecurityRoles().add(role1); + descriptorToMerge.getSecurityRoles().add(role2); + + + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(descriptorBase.getSecurityRoles()); + Assert.assertTrue(descriptorBase.getSecurityRoles().size() == 6); + Assert.assertTrue(descriptorToMerge.getSecurityRoles().size() == 3); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role0.getRoleName())); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role1.getRoleName())); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role2.getRoleName())); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role3.getRoleName())); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role4.getRoleName())); + Assert.assertTrue(containsSecRole(descriptorBase.getSecurityRoles(), role5.getRoleName())); + } + + private boolean containsSecRole(List list, String roleName) { + + + for (Object object : list) { + SecurityRole role = (SecurityRole) object; + if(roleName == null){ + if(roleName == role.getRoleName()){ + return true; + } + } else if(roleName.equals(role.getRoleName())){ + return true; + } + } + return false; + } + + + /** + * Tests the merger with Base security role only. + * No merge is necessary + * + * @throws ModelException + */ + //@Test + public void testSingleRunAsCaseBase() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); + Servlet servletBase = WebFactory.eINSTANCE.createServlet(); + servletBase.setServletName("servName"); + Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); + servletMerge.setServletName("servName"); + role.setRoleName("test1"); + servletBase.setRunAs(role); + + descriptorBase.getServlets().add(servletBase); + descriptorToMerge.getServlets().add(servletMerge); + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(servletBase.getRunAs()); + Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); + } + + /** + * Tests the merger with toMerge security role only. + * The role should be copied in base. + * + * @throws ModelException + */ + //@Test + public void testSingleRunAsCaseToMerge() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); + Servlet servletBase = WebFactory.eINSTANCE.createServlet(); + servletBase.setServletName("servName"); + Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); + servletMerge.setServletName("servName"); + role.setRoleName("test1"); + servletMerge.setRunAs(role); + + descriptorBase.getServlets().add(servletBase); + descriptorToMerge.getServlets().add(servletMerge); + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(servletBase.getRunAs()); + Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); + Assert.assertEquals(1, descriptorBase.getServlets().size()); + } + + + /** + * Tests the merger with null named servlet in toMerge array, the merger should ignore such entries. + * + * @throws ModelException + */ + //@Test + public void testSingleNullServletToMerge() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + Servlet servletBase = WebFactory.eINSTANCE.createServlet(); + + descriptorToMerge.getServlets().add(servletBase); + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertEquals(0, descriptorBase.getServlets().size()); + } + + /** + * Tests the merger with null named servlet in Base, as this is extremely unlikely + * the merger should not stop merging because of such error. + * + * @throws ModelException + */ + //@Test + public void testSingleNullNamedServletInBase() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + Servlet servletBase = WebFactory.eINSTANCE.createServlet(); + Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); + servletMerge.setServletName("servName"); + + descriptorBase.getServlets().add(servletBase); + descriptorToMerge.getServlets().add(servletMerge); + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertEquals(2, descriptorBase.getServlets().size()); + } + + /** + * Tests the merger with one and the same security role. + * The result should be non merged 1 security role. + * + * @throws ModelException + */ + //@Test + public void testSingleRunAsCaseSameRole() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + RunAs role = JavaeeFactory.eINSTANCE.createRunAs(); + Servlet servletBase = WebFactory.eINSTANCE.createServlet(); + servletBase.setServletName("servName"); + Servlet servletMerge = WebFactory.eINSTANCE.createServlet(); + servletMerge.setServletName("servName"); + role.setRoleName("test1"); + servletBase.setRunAs(role); + servletMerge.setRunAs(role); + + descriptorBase.getServlets().add(servletBase); + descriptorToMerge.getServlets().add(servletMerge); + + + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(servletBase.getRunAs()); + Assert.assertTrue(((RunAs)servletBase.getRunAs()).getRoleName().equals("test1")); + } + + + + /** + * Tests the merger with Base security constraints only. + * No merge is necessary + * + * @throws ModelException + */ +// @Test + @SuppressWarnings("unchecked") + public void testSingleSecurityConstraintCaseBase() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + SecurityConstraint sc = WebFactory.eINSTANCE.createSecurityConstraint(); + AuthConstraint createAuthConstraint = WebFactory.eINSTANCE.createAuthConstraint(); + createAuthConstraint.getRoleNames().add("test"); + sc.setAuthConstraint(createAuthConstraint); + UserDataConstraint userDataConstraint = WebFactory.eINSTANCE.createUserDataConstraint(); + userDataConstraint.setTransportGuarantee(TransportGuaranteeType.CONFIDENTIAL_LITERAL); + sc.setUserDataConstraint(userDataConstraint); + + descriptorBase.getSecurityConstraints().add(sc); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + WebAppMerger result = new WebAppMerger(descriptorBase, descriptorToMerge, 0); + result.process(); + Assert.assertNotNull(descriptorBase.getSecurityConstraints()); + Assert.assertTrue(descriptorBase.getSecurityConstraints().size() == 1); + Assert.assertTrue(descriptorToMerge.getSecurityConstraints().size() == 0); + Assert.assertTrue(((SecurityConstraint)descriptorBase.getSecurityConstraints().get(0)).getAuthConstraint().getRoleNames().get(0).equals("test")); + } + + /** + * Tests the merger with toMerge security constraints only. + * The role should be copied in base. + * + * @throws ModelException + */ + //@Test + public void testSingleSecurityConstraintCaseToMerge() throws ModelException{ + WebApp descriptorBase = WebFactory.eINSTANCE.createWebApp(); + SecurityConstraint sc = WebFactory.eINSTANCE.createSecurityConstraint(); + AuthConstraint createAuthConstraint = WebFactory.eINSTANCE.createAuthConstraint(); + createAuthConstraint.getRoleNames().add("test"); + sc.setAuthConstraint(createAuthConstraint); + UserDataConstraint userDataConstraint = WebFactory.eINSTANCE.createUserDataConstraint(); + userDataConstraint.setTransportGuarantee(TransportGuaranteeType.CONFIDENTIAL_LITERAL); + sc.setUserDataConstraint(userDataConstraint); + + descriptorBase.getSecurityConstraints().add(sc); + WebApp descriptorToMerge = WebFactory.eINSTANCE.createWebApp(); + WebAppMerger result = new WebAppMerger(descriptorToMerge, descriptorBase, 0); + result.process(); + Assert.assertNotNull(descriptorToMerge.getSecurityConstraints()); + Assert.assertTrue(descriptorToMerge.getSecurityConstraints().size() == 1); + Assert.assertTrue(((SecurityConstraint)descriptorToMerge.getSecurityConstraints().get(0)).getAuthConstraint().getRoleNames().get(0).equals("test")); + } + }