[jboss-cvs] JBoss Messaging SVN: r6142 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/deployers/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 23 12:02:12 EDT 2009


Author: ataylor
Date: 2009-03-23 12:02:12 -0400 (Mon, 23 Mar 2009)
New Revision: 6142

Added:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FakeDeploymentManager.java
Modified:
   trunk/src/main/org/jboss/messaging/core/settings/impl/HierarchicalObjectRepository.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/AddressSettingsDeployerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/BasicSecurityDeployerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FileDeploymentManagerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/SecurityDeployerTest.java
Log:
ported easymock tests

Modified: trunk/src/main/org/jboss/messaging/core/settings/impl/HierarchicalObjectRepository.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/settings/impl/HierarchicalObjectRepository.java	2009-03-23 15:32:26 UTC (rev 6141)
+++ trunk/src/main/org/jboss/messaging/core/settings/impl/HierarchicalObjectRepository.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -22,6 +22,11 @@
 
 package org.jboss.messaging.core.settings.impl;
 
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.HierarchicalRepositoryChangeListener;
+import org.jboss.messaging.core.settings.Mergeable;
+
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -30,12 +35,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.settings.HierarchicalRepository;
-import org.jboss.messaging.core.settings.HierarchicalRepositoryChangeListener;
-import org.jboss.messaging.core.settings.Mergeable;
 
-
 /**
  * allows objects to be mapped against a regex pattern and held in order in a list
  *
@@ -159,6 +159,7 @@
    public void removeMatch(final String match)
    {
       matches.remove(match);
+      cache.clear();
       onChange();
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/AddressSettingsDeployerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/AddressSettingsDeployerTest.java	2009-03-23 15:32:26 UTC (rev 6141)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/AddressSettingsDeployerTest.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -22,12 +22,11 @@
 
 package org.jboss.messaging.tests.unit.core.deployers.impl;
 
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
 import org.jboss.messaging.core.deployers.DeploymentManager;
 import org.jboss.messaging.core.deployers.impl.AddressSettingsDeployer;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
+import org.jboss.messaging.core.settings.impl.HierarchicalObjectRepository;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.SimpleString;
 import org.jboss.messaging.utils.XMLUtil;
@@ -55,48 +54,32 @@
    {
       super.setUp();
       
-      repository = EasyMock.createStrictMock(HierarchicalRepository.class);
-      DeploymentManager deploymentManager = EasyMock.createNiceMock(DeploymentManager.class);
+      repository = new HierarchicalObjectRepository<AddressSettings>();
+      DeploymentManager deploymentManager = new FakeDeploymentManager();
       addressSettingsDeployer = new AddressSettingsDeployer(deploymentManager, repository);
    }
 
    public void testDeploy() throws Exception
    {
-      final AddressSettings addressSettings = new AddressSettings();
-      addressSettings.setRedeliveryDelay((long) 100);
-      addressSettings.setMaxSizeBytes(-100);
-      addressSettings.setDistributionPolicyClass("org.jboss.messaging.core.impl.RoundRobinDistributionPolicy");
-      addressSettings.setMessageCounterHistoryDayLimit(1000);
-      addressSettings.setDeadLetterAddress(new SimpleString("DLQtest"));
-      addressSettings.setExpiryAddress(new SimpleString("ExpiryQueueTest"));
-
-      repository.addMatch(EasyMock.eq("queues.*"),(AddressSettings) EasyMock.anyObject());
-      EasyMock.expectLastCall().andAnswer(new IAnswer<Object>()
-      {
-         public Object answer() throws Throwable
-         {
-            AddressSettings q = (AddressSettings) EasyMock.getCurrentArguments()[1];
-            assertEquals(q.getRedeliveryDelay(), addressSettings.getRedeliveryDelay());
-            assertEquals(q.getMaxSizeBytes(), addressSettings.getMaxSizeBytes());
-            assertEquals(q.getDistributionPolicyClass(), addressSettings.getDistributionPolicyClass());
-            assertEquals(q.getMessageCounterHistoryDayLimit(), addressSettings.getMessageCounterHistoryDayLimit());
-            assertEquals(q.getDeadLetterAddress(), addressSettings.getDeadLetterAddress());
-            assertEquals(q.getExpiryAddress(), addressSettings.getExpiryAddress());
-            return null;
-         }
-      });
-      EasyMock.replay(repository);
       addressSettingsDeployer.deploy(XMLUtil.stringToElement(conf));
-      EasyMock.verify(repository);
+      AddressSettings as = repository.getMatch("queues.aq");
+      assertNotNull(as);
+      assertEquals(100, as.getRedeliveryDelay());
+      assertEquals(-100, as.getMaxSizeBytes());
+      assertEquals("org.jboss.messaging.core.impl.RoundRobinDistributionPolicy", as.getDistributionPolicyClass());
+      assertEquals(1000, as.getMessageCounterHistoryDayLimit());
+      assertEquals(new SimpleString("DLQtest"), as.getDeadLetterAddress());
+      assertEquals(new SimpleString("ExpiryQueueTest"), as.getExpiryAddress());
    }
 
    public void testUndeploy() throws Exception
    {
-      repository.removeMatch("queues.*");
-      EasyMock.replay(repository);
+      addressSettingsDeployer.deploy(XMLUtil.stringToElement(conf));
+      AddressSettings as = repository.getMatch("queues.aq");
+      assertNotNull(as);
       addressSettingsDeployer.undeploy(XMLUtil.stringToElement(conf));
-      EasyMock.verify(repository);
+      as = repository.getMatch("queues.aq");
+      assertNull(as);
    }
 
-
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/BasicSecurityDeployerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/BasicSecurityDeployerTest.java	2009-03-23 15:32:26 UTC (rev 6141)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/BasicSecurityDeployerTest.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -18,60 +18,70 @@
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
+ */
 
 package org.jboss.messaging.tests.unit.core.deployers.impl;
 
-import org.easymock.EasyMock;
 import org.jboss.messaging.core.deployers.DeploymentManager;
 import org.jboss.messaging.core.deployers.impl.BasicSecurityDeployer;
+import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.JBMUpdateableSecurityManager;
+import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.tests.util.UnitTestCase;
 import org.jboss.messaging.utils.XMLUtil;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 /**
  * tests BasicSecurityDeployer
+ *
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  */
-public class BasicSecurityDeployerTest  extends UnitTestCase
+public class BasicSecurityDeployerTest extends UnitTestCase
 {
    private BasicSecurityDeployer deployer;
-   
+
    private static final String simpleSecurityXml = "<deployment>\n" +
-           "</deployment>";
+                                                   "<defaultuser name=\"guest\" password=\"guest\">\n" +
+                                                   "      <role name=\"guest\"/>\n" +
+                                                   "   </defaultuser>" +
+                                                   "</deployment>";
 
    private static final String singleUserXml = "<deployment>\n" +
-           "      <user name=\"guest\" password=\"guest\">\n" +
-           "         <role name=\"guest\"/>\n" +
-           "      </user>\n" +
-           "</deployment>";
+                                               "      <user name=\"guest\" password=\"guest\">\n" +
+                                               "         <role name=\"guest\"/>\n" +
+                                               "      </user>\n" +
+                                               "</deployment>";
 
    private static final String multipleUserXml = "<deployment>\n" +
-           "      <user name=\"guest\" password=\"guest\">\n" +
-           "         <role name=\"guest\"/>\n" +
-           "         <role name=\"foo\"/>\n" +
-           "      </user>\n" +
-           "    <user name=\"anotherguest\" password=\"anotherguest\">\n" +
-           "         <role name=\"anotherguest\"/>\n" +
-           "         <role name=\"foo\"/>\n" +
-           "         <role name=\"bar\"/>\n" +
-           "      </user>\n" +
-           "</deployment>";
+                                                 "      <user name=\"guest\" password=\"guest\">\n" +
+                                                 "         <role name=\"guest\"/>\n" +
+                                                 "         <role name=\"foo\"/>\n" +
+                                                 "      </user>\n" +
+                                                 "    <user name=\"anotherguest\" password=\"anotherguest\">\n" +
+                                                 "         <role name=\"anotherguest\"/>\n" +
+                                                 "         <role name=\"foo\"/>\n" +
+                                                 "         <role name=\"bar\"/>\n" +
+                                                 "      </user>\n" +
+                                                 "</deployment>";
 
    protected void setUp() throws Exception
    {
       super.setUp();
-      
-      DeploymentManager deploymentManager = EasyMock.createNiceMock(DeploymentManager.class);
+      DeploymentManager deploymentManager = new FakeDeploymentManager();
       deployer = new BasicSecurityDeployer(deploymentManager);
    }
 
    protected void tearDown() throws Exception
    {
       deployer = null;
-      
+
       super.tearDown();
    }
 
@@ -81,7 +91,7 @@
       for (int i = 0; i < children.getLength(); i++)
       {
          Node node = children.item(i);
-         if(node.getNodeName().equals("user"))
+         if (node.getNodeName().equals("user") || node.getNodeName().equals("defaultuser"))
          {
             deployer.deploy(node);
          }
@@ -94,7 +104,7 @@
       for (int i = 0; i < children.getLength(); i++)
       {
          Node node = children.item(i);
-         if(node.getNodeName().equals("user"))
+         if (node.getNodeName().equals("user"))
          {
             deployer.undeploy(node);
          }
@@ -103,50 +113,192 @@
 
    public void testSimpleDefaultSecurity() throws Exception
    {
-      JBMUpdateableSecurityManager securityManager = EasyMock.createStrictMock(JBMUpdateableSecurityManager.class);
+      FakeJBMUpdateableSecurityManager securityManager = new FakeJBMUpdateableSecurityManager();
       deployer.setJbmSecurityManager(securityManager);
-      EasyMock.replay(securityManager);
       deploy(simpleSecurityXml);
-      EasyMock.verify(securityManager);
+      assertEquals("guest", securityManager.defaultUser);
+      User user = securityManager.users.get("guest");
+      assertNotNull(user);
+      assertEquals("guest",user.user);
+      assertEquals("guest",user.password);
+      List<String> roles = securityManager.roles.get("guest");
+      assertNotNull(roles);
+      assertEquals(1, roles.size());
+      assertEquals("guest", roles.get(0));
    }
 
    public void testSingleUserDeploySecurity() throws Exception
    {
-      JBMUpdateableSecurityManager securityManager = EasyMock.createStrictMock(JBMUpdateableSecurityManager.class);
+      FakeJBMUpdateableSecurityManager securityManager = new FakeJBMUpdateableSecurityManager();
       deployer.setJbmSecurityManager(securityManager);
-      securityManager.addUser("guest", "guest");
-      securityManager.addRole("guest", "guest");
-      EasyMock.replay(securityManager);
       deploy(singleUserXml);
-      EasyMock.verify(securityManager);
+      assertNull(securityManager.defaultUser);
+      User user = securityManager.users.get("guest");
+      assertNotNull(user);
+      assertEquals("guest",user.user);
+      assertEquals("guest",user.password);
+      List<String> roles = securityManager.roles.get("guest");
+      assertNotNull(roles);
+      assertEquals(1, roles.size());
+      assertEquals("guest", roles.get(0));
    }
 
-    public void testMultipleUserDeploySecurity() throws Exception
+   public void testMultipleUserDeploySecurity() throws Exception
    {
-      JBMUpdateableSecurityManager securityManager = EasyMock.createStrictMock(JBMUpdateableSecurityManager.class);
+      FakeJBMUpdateableSecurityManager securityManager = new FakeJBMUpdateableSecurityManager();
       deployer.setJbmSecurityManager(securityManager);
-      securityManager.addUser("guest", "guest");
-      securityManager.addRole("guest", "guest");
-      securityManager.addRole("guest", "foo");
-      securityManager.addUser("anotherguest", "anotherguest");
-      securityManager.addRole("anotherguest", "anotherguest");
-      securityManager.addRole("anotherguest", "foo");
-      securityManager.addRole("anotherguest", "bar");
-
-      EasyMock.replay(securityManager);
       deploy(multipleUserXml);
-      EasyMock.verify(securityManager);
+      assertNull(securityManager.defaultUser);
+      User user = securityManager.users.get("guest");
+      assertNotNull(user);
+      assertEquals("guest",user.user);
+      assertEquals("guest",user.password);
+      List<String> roles = securityManager.roles.get("guest");
+      assertNotNull(roles);
+      assertEquals(2, roles.size());
+      assertEquals("guest", roles.get(0));
+      assertEquals("foo", roles.get(1));
+      user = securityManager.users.get("anotherguest");
+      assertNotNull(user);
+      assertEquals("anotherguest",user.user);
+      assertEquals("anotherguest",user.password);
+      roles = securityManager.roles.get("anotherguest");
+      assertNotNull(roles);
+      assertEquals(3, roles.size());
+      assertEquals("anotherguest", roles.get(0));
+      assertEquals("foo", roles.get(1));
+      assertEquals("bar", roles.get(2));
    }
 
    public void testUndeploy() throws Exception
    {
-      JBMUpdateableSecurityManager securityManager = EasyMock.createStrictMock(JBMUpdateableSecurityManager.class);
+      FakeJBMUpdateableSecurityManager securityManager = new FakeJBMUpdateableSecurityManager();
       deployer.setJbmSecurityManager(securityManager);
-      securityManager.removeUser("guest");
-      securityManager.removeUser("anotherguest");
+      deploy(multipleUserXml);
+      undeploy(singleUserXml);
+      assertNull(securityManager.defaultUser);
+      User user = securityManager.users.get("guest");
+      assertNull(user);
+      List<String> roles = securityManager.roles.get("guest");
+      assertNull(roles);
+      user = securityManager.users.get("anotherguest");
+      assertNotNull(user);
+      assertEquals("anotherguest",user.user);
+      assertEquals("anotherguest",user.password);
+      roles = securityManager.roles.get("anotherguest");
+      assertNotNull(roles);
+      assertEquals(3, roles.size());
+      assertEquals("anotherguest", roles.get(0));
+      assertEquals("foo", roles.get(1));
+      assertEquals("bar", roles.get(2));
+   }
 
-      EasyMock.replay(securityManager);
-      undeploy(multipleUserXml);
-      EasyMock.verify(securityManager);
+   class FakeJBMUpdateableSecurityManager implements JBMUpdateableSecurityManager
+   {
+      String defaultUser;
+
+      private Map<String, User> users = new HashMap<String, User>();
+
+      private Map<String, List<String>> roles = new HashMap<String, List<String>>();
+
+      public void addUser(final String user, final String password)
+      {
+         if (user == null)
+         {
+            throw new IllegalArgumentException("User cannot be null");
+         }
+         if (password == null)
+         {
+            throw new IllegalArgumentException("password cannot be null");
+         }
+         users.put(user, new User(user, password));
+      }
+
+      public void removeUser(final String user)
+      {
+         users.remove(user);
+         roles.remove(user);
+      }
+
+      public void addRole(final String user, final String role)
+      {
+         if (roles.get(user) == null)
+         {
+            roles.put(user, new ArrayList<String>());
+         }
+         roles.get(user).add(role);
+      }
+
+      public void removeRole(final String user, final String role)
+      {
+         if (roles.get(user) == null)
+         {
+            return;
+         }
+         roles.get(user).remove(role);
+      }
+
+      public void setDefaultUser(String username)
+      {
+         defaultUser = username;
+      }
+
+      public boolean validateUser(String user, String password)
+      {
+         return false;
+      }
+
+      public boolean validateUserAndRole(String user, String password, Set<Role> roles, CheckType checkType)
+      {
+         return false;
+      }
    }
+
+   static class User
+   {
+      final String user;
+
+      final String password;
+
+      User(final String user, final String password)
+      {
+         this.user = user;
+         this.password = password;
+      }
+
+      public boolean equals(Object o)
+      {
+         if (this == o)
+         {
+            return true;
+         }
+         if (o == null || getClass() != o.getClass())
+         {
+            return false;
+         }
+
+         User user1 = (User) o;
+
+         if (!user.equals(user1.user))
+         {
+            return false;
+         }
+
+         return true;
+      }
+
+      public int hashCode()
+      {
+         return user.hashCode();
+      }
+
+      public boolean isValid(final String user, final String password)
+      {
+         if (user == null)
+         {
+            return false;
+         }
+         return this.user.equals(user) && this.password.equals(password);
+      }
+   }
 }

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FakeDeploymentManager.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FakeDeploymentManager.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FakeDeploymentManager.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.messaging.tests.unit.core.deployers.impl;
+
+import org.jboss.messaging.core.deployers.Deployer;
+import org.jboss.messaging.core.deployers.DeploymentManager;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+*/
+class FakeDeploymentManager implements DeploymentManager
+{
+   public void registerDeployer(Deployer deployer) throws Exception
+   {
+   }
+
+   public void unregisterDeployer(Deployer deployer) throws Exception
+   {
+   }
+}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FileDeploymentManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FileDeploymentManagerTest.java	2009-03-23 15:32:26 UTC (rev 6141)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/FileDeploymentManagerTest.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -22,15 +22,14 @@
 
 package org.jboss.messaging.tests.unit.core.deployers.impl;
 
-import java.io.File;
-import java.net.URL;
-
-import org.easymock.classextension.EasyMock;
 import org.jboss.messaging.core.deployers.Deployer;
 import org.jboss.messaging.core.deployers.impl.FileDeploymentManager;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.tests.util.UnitTestCase;
 
+import java.io.File;
+import java.net.URL;
+
 /**
  * 
  * A FileDeploymentManagerTest
@@ -45,9 +44,19 @@
    public void testStartStop() throws Exception
    {
       FileDeploymentManager fdm = new FileDeploymentManager(Long.MAX_VALUE);
+
+      String filename = "fdm_test_file.xml";
+
+      log.debug("Filename is " + filename);
+
+      File file = new File("tests/tmpfiles/" + filename);
+
+      log.debug(file.getAbsoluteFile());
+
+      file.createNewFile();
+
+      FakeDeployer deployer = new FakeDeployer(filename);
       
-      Deployer deployer = EasyMock.createStrictMock(Deployer.class);
-      
       try
       {
          fdm.registerDeployer(deployer);
@@ -69,43 +78,16 @@
       }
       
       fdm.start();
-      
-      String filename = "fdm_test_file.xml";
-      
-      log.debug("Filename is " + filename);
-      
-      File file = new File("tests/tmpfiles/" + filename);
-      
-      log.debug(file.getAbsoluteFile());
-      
-      file.createNewFile();
 
+
       try
-      {      
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});
-         
-         URL url = file.toURL();
-         
-         deployer.deploy(url);
-         
-         EasyMock.replay(deployer);
-         
+      {
          fdm.registerDeployer(deployer);
-         
-         EasyMock.verify(deployer);
-         
-         //Start again should do nothing
-         
-         EasyMock.reset(deployer);
-         
-         EasyMock.replay(deployer);
-         
+         assertEquals(file.toURL(), deployer.deployedUrl);
+         deployer.deployedUrl = null;
          fdm.start();
-         
-         EasyMock.verify(deployer);
-         
+         assertNull(deployer.deployedUrl);
          fdm.stop();
-         
          try
          {
             fdm.registerDeployer(deployer);
@@ -131,15 +113,11 @@
          file.delete();
       }      
    }
-   
+
    public void testRegisterUnregister() throws Exception
    {
       FileDeploymentManager fdm = new FileDeploymentManager(Long.MAX_VALUE);
       
-      Deployer deployer1 = EasyMock.createStrictMock(Deployer.class);
-      Deployer deployer2 = EasyMock.createStrictMock(Deployer.class);
-      Deployer deployer3 = EasyMock.createStrictMock(Deployer.class);
-      
       fdm.start();
       
       String filename1 = "fdm_test_file.xml1";
@@ -153,86 +131,66 @@
       file1.createNewFile();
       file2.createNewFile();
       file3.createNewFile();
-      
+
+
+      FakeDeployer deployer1 = new FakeDeployer(filename1);
+      FakeDeployer deployer2 = new FakeDeployer(filename2);
+      FakeDeployer deployer3 = new FakeDeployer(filename3);
       try
-      {      
-         EasyMock.expect(deployer1.getConfigFileNames()).andReturn(new String[] {filename1});      
+      {
          URL url1 = file1.toURL();      
          deployer1.deploy(url1);
-         
-         EasyMock.expect(deployer2.getConfigFileNames()).andReturn(new String[] {filename2});      
+
          URL url2 = file2.toURL();      
          deployer2.deploy(url2);
-         
-         EasyMock.expect(deployer3.getConfigFileNames()).andReturn(new String[] {filename3});      
+
          URL url3 = file3.toURL();      
          deployer3.deploy(url3);
-   
-         EasyMock.replay(deployer1, deployer2, deployer3);
          
          fdm.registerDeployer(deployer1);
          fdm.registerDeployer(deployer2);
          fdm.registerDeployer(deployer3);
+
          
-         EasyMock.verify(deployer1, deployer2, deployer3);
-         
          assertEquals(3, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer1));
          assertTrue(fdm.getDeployers().contains(deployer2));
          assertTrue(fdm.getDeployers().contains(deployer3));
          assertEquals(3, fdm.getDeployed().size());
-         
+
+         assertEquals(file1.toURL(), deployer1.deployedUrl);
+         assertEquals(file2.toURL(), deployer2.deployedUrl);
+         assertEquals(file3.toURL(), deployer3.deployedUrl);
          //Registering same again should do nothing
+
          
-         EasyMock.reset(deployer1, deployer2, deployer3);
-         EasyMock.replay(deployer1, deployer2, deployer3);
-         
          fdm.registerDeployer(deployer1);
+
          
-         EasyMock.verify(deployer1, deployer2, deployer3);
-         
          assertEquals(3, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer1));
          assertTrue(fdm.getDeployers().contains(deployer2));
          assertTrue(fdm.getDeployers().contains(deployer3));
          assertEquals(3, fdm.getDeployed().size());
+
          
-         EasyMock.reset(deployer1, deployer2, deployer3);
-         
-         EasyMock.expect(deployer1.getConfigFileNames()).andReturn(new String[] {filename1}); 
-                  
-         EasyMock.replay(deployer1, deployer2, deployer3);
-         
          fdm.unregisterDeployer(deployer1);
-                  
-         EasyMock.verify(deployer1, deployer2, deployer3);
+
          
          assertEquals(2, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer2));
          assertTrue(fdm.getDeployers().contains(deployer3));
          assertEquals(2, fdm.getDeployed().size());
-         
-         EasyMock.reset(deployer1, deployer2, deployer3);
-         
-         EasyMock.expect(deployer2.getConfigFileNames()).andReturn(new String[] {filename2}); 
-         EasyMock.expect(deployer3.getConfigFileNames()).andReturn(new String[] {filename3}); 
-         
-         EasyMock.replay(deployer1, deployer2, deployer3);
-         
+
          fdm.unregisterDeployer(deployer2);
          fdm.unregisterDeployer(deployer3);
-                  
-         EasyMock.verify(deployer1, deployer2, deployer3);
          
          assertEquals(0, fdm.getDeployers().size());  
          assertEquals(0, fdm.getDeployed().size());
          
          //Now unregister again - should do nothing
-         
-         EasyMock.reset(deployer1, deployer2, deployer3);
-         EasyMock.replay(deployer1, deployer2, deployer3);
+
          fdm.unregisterDeployer(deployer1);
-         EasyMock.verify(deployer1, deployer2, deployer3);
          
          assertEquals(0, fdm.getDeployers().size());  
          assertEquals(0, fdm.getDeployed().size());         
@@ -244,12 +202,11 @@
          file3.delete();
       }
    }
-   
+
    public void testRedeploy() throws Exception
    {
       FileDeploymentManager fdm = new FileDeploymentManager(Long.MAX_VALUE);
-      
-      Deployer deployer = EasyMock.createStrictMock(Deployer.class);
+
    
       fdm.start();
       
@@ -259,64 +216,45 @@
    
       file.createNewFile();
       long oldLastModified = file.lastModified();
- 
+
+      FakeDeployer deployer = new FakeDeployer(filename);
       try
-      {      
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});      
+      {
          URL url = file.toURL();      
          deployer.deploy(url);
          
-         EasyMock.replay(deployer);
-         
          fdm.registerDeployer(deployer);
-
-         EasyMock.verify(deployer);
-         
+         assertEquals(file.toURL(), deployer.deployedUrl);
          //Touch the file
          file.setLastModified(oldLastModified + 1000);
-         
-         EasyMock.reset(deployer);
-                           
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});          
+
          deployer.redeploy(url);
          
-         EasyMock.replay(deployer);
-         
          fdm.run();
          
-         EasyMock.verify(deployer);
-         
          assertEquals(1, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer));
          assertEquals(1, fdm.getDeployed().size());
-         
+         assertEquals(file.toURL(), deployer.reDeployedUrl);
          assertEquals(oldLastModified + 1000, fdm.getDeployed().get(url).lastModified);
-          
+         deployer.reDeployedUrl = null; 
          //Scanning again should not redeploy
          
-         EasyMock.reset(deployer);
-         
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename}); 
-         
-         EasyMock.replay(deployer);
-         
          fdm.run();
          
-         EasyMock.verify(deployer);
-         
          assertEquals(oldLastModified + 1000, fdm.getDeployed().get(url).lastModified);
+         assertNull(deployer.reDeployedUrl);
       }
       finally
       {
          file.delete();
       }
    }
-   
+
    public void testUndeployAndDeployAgain() throws Exception
    {
       FileDeploymentManager fdm = new FileDeploymentManager(Long.MAX_VALUE);
-      
-      Deployer deployer = EasyMock.createStrictMock(Deployer.class);
+
    
       fdm.start();
       
@@ -325,39 +263,31 @@
       File file = new File("tests/tmpfiles/" + filename);
    
       file.createNewFile();
- 
+
+      FakeDeployer deployer = new FakeDeployer(filename);
       try
-      {      
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});      
+      {
          URL url = file.toURL();      
          deployer.deploy(url);
+
          
-         EasyMock.replay(deployer);
-         
          fdm.registerDeployer(deployer);
-
-         EasyMock.verify(deployer);
          
          assertEquals(1, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer));
          assertEquals(1, fdm.getDeployed().size());
-         
+         assertEquals(file.toURL(), deployer.deployedUrl);
+         deployer.deployedUrl = null;
          file.delete();
          
          //This should cause undeployment
-         
-         EasyMock.reset(deployer);
-         
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});   
-         
+
          deployer.undeploy(url);
+         assertEquals(file.toURL(), deployer.unDeployedUrl);
          
-         EasyMock.replay(deployer);
-         
          fdm.run();
+
          
-         EasyMock.verify(deployer);
-         
          assertEquals(1, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer));
          assertEquals(0, fdm.getDeployed().size());
@@ -365,26 +295,71 @@
          //Recreate file and it should be redeployed
          
          file.createNewFile();
+
          
-         EasyMock.reset(deployer);
-         
-         EasyMock.expect(deployer.getConfigFileNames()).andReturn(new String[] {filename});  
-         
          deployer.deploy(url);
+
          
-         EasyMock.replay(deployer);
-         
          fdm.run();
          
-         EasyMock.verify(deployer);
-         
          assertEquals(1, fdm.getDeployers().size());
          assertTrue(fdm.getDeployers().contains(deployer));
          assertEquals(1, fdm.getDeployed().size());
+
+         assertEquals(file.toURL(), deployer.deployedUrl);
       }
       finally
       {
          file.delete();
       }
    }
+
+   class FakeDeployer implements Deployer
+   {
+      URL deployedUrl;
+      URL unDeployedUrl;
+      URL reDeployedUrl;
+      boolean started;
+      private String file;
+
+      public FakeDeployer(String file)
+      {
+         this.file = file;
+      }
+
+      public String[] getConfigFileNames()
+      {
+         return new String[]{file};
+      }
+
+      public void deploy(URL url) throws Exception
+      {
+         deployedUrl = url;
+      }
+
+      public void redeploy(URL url) throws Exception
+      {
+         reDeployedUrl = url;
+      }
+
+      public void undeploy(URL url) throws Exception
+      {
+         unDeployedUrl = url;
+      }
+
+      public void start() throws Exception
+      {
+         started = true;
+      }
+
+      public void stop() throws Exception
+      {
+         started = false;
+      }
+
+      public boolean isStarted()
+      {
+         return started;
+      }
+   }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/SecurityDeployerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/SecurityDeployerTest.java	2009-03-23 15:32:26 UTC (rev 6141)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/SecurityDeployerTest.java	2009-03-23 16:02:12 UTC (rev 6142)
@@ -18,85 +18,194 @@
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */ 
+ */
 
 package org.jboss.messaging.tests.unit.core.deployers.impl;
 
+import org.jboss.messaging.core.deployers.DeploymentManager;
+import org.jboss.messaging.core.deployers.impl.SecurityDeployer;
+import org.jboss.messaging.core.security.Role;
+import org.jboss.messaging.core.settings.HierarchicalRepository;
+import org.jboss.messaging.core.settings.impl.HierarchicalObjectRepository;
 import org.jboss.messaging.tests.util.UnitTestCase;
+import org.w3c.dom.Element;
 
+import java.util.HashSet;
+import java.util.Set;
+
 /**
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  */
 public class SecurityDeployerTest extends UnitTestCase
 {
-   /*private SecurityDeployer deployer;
-   private String conf = 
-           "   <security match=\"topics.testTopic\">\n" +
-           "      <permission type=\"create\" roles=\"durpublisher\"/>\n" +
-           "      <permission type=\"read\" roles=\"guest,publisher,durpublisher\"/>\n" +
-           "      <permission type=\"write\" roles=\"guest,publisher,durpublisher\"/>\n" +
-           "   </security>";
+   private SecurityDeployer deployer;
 
-   private String conf2 =
-           "   <security match=\"queues.testQueue\">\n" +
-           "      <permission type=\"create\" roles=\"durpublisher\"/>\n" +
-           "      <permission type=\"read\" roles=\"guest,publisher,durpublisher\"/>\n" +
-           "      <permission type=\"write\" roles=\"guest,publisher,durpublisher\"/>\n" +
-           "   </security>";
+   private String conf = "<security match=\"topicjms.testTopic\">\n" +
+                         "      <permission type=\"createDurableQueue\" roles=\"durpublisher\"/>\n" +
+                         "      <permission type=\"deleteDurableQueue\" roles=\"durpublisher\"/>\n" +
+                         "      <permission type=\"consume\" roles=\"guest,publisher,durpublisher\"/>\n" +
+                         "      <permission type=\"send\" roles=\"guest,publisher,durpublisher\"/>\n" +
+                         "      <permission type=\"manage\" roles=\"guest,publisher,durpublisher\"/>\n" +
+                         "   </security>";
 
+   private String conf2 = "<security match=\"topicjms.testQueue\">\n" +
+                          "      <permission type=\"createTempQueue\" roles=\"durpublisher\"/>\n" +
+                          "      <permission type=\"deleteTempQueue\" roles=\"durpublisher\"/>\n" +
+                          "      <permission type=\"consume\" roles=\"guest,publisher,durpublisher\"/>\n" +
+                          "      <permission type=\"send\" roles=\"guest,publisher,durpublisher\"/>\n" +
+                          "   </security>";
+
    private String noRoles =
-           "   <securityfoo match=\"queues.testQueue\">\n" +
-           "   </securityfoo>";
+         "   <securityfoo match=\"queues.testQueue\">\n" +
+         "   </securityfoo>";
+
    private HierarchicalRepository<Set<Role>> repository;
 
    protected void setUp() throws Exception
    {
       super.setUp();
-      
-      repository = EasyMock.createStrictMock(HierarchicalRepository.class);
-      DeploymentManager deploymentManager = EasyMock.createNiceMock(DeploymentManager.class);
+
+      repository = new HierarchicalObjectRepository<Set<Role>>();
+      DeploymentManager deploymentManager = new FakeDeploymentManager();
       deployer = new SecurityDeployer(deploymentManager, repository);
    }
-   **/
+
    public void testSingle() throws Exception
    {
-      /*Element e = org.jboss.messaging.utils.XMLUtil.stringToElement(conf);
-      Role role = new Role("durpublisher", true, true, true, true, true, true);
-      Role role2 = new Role("guest", true, true, false, true, true, true);
-      Role role3 = new Role("publisher", true, true, false, true, true, true);
-      HashSet<Role> roles = new HashSet<Role>();
-      roles.add(role);
-      roles.add(role2);
-      roles.add(role3);
-      repository.addMatch("topics.testTopic", roles);
-      EasyMock.replay(repository);
+      Element e = org.jboss.messaging.utils.XMLUtil.stringToElement(conf);
       deployer.deploy(e);
-      EasyMock.verify(repository);*/
+      HashSet<Role> roles = (HashSet<Role>) repository.getMatch("topicjms.testTopic");
+      assertNotNull(roles);
+      assertEquals(3, roles.size());
+      for (Role role : roles)
+      {
+         if (role.getName().equals("guest"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("publisher"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("durpublisher"))
+         {
+            assertTrue(role.isConsume());
+            assertTrue(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertTrue(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else
+         {
+            fail("unexpected role");
+         }
+      }
    }
-   /**
+
    public void testMultiple() throws Exception
    {
-      Role role = new Role("durpublisher", true, true, true, true, true, true);
-      Role role2 = new Role("guest", true, true, false, true, true, true);
-      Role role3 = new Role("publisher", true, true, false, true, true, true);
-      HashSet<Role> roles = new HashSet<Role>();
-      roles.add(role);
-      roles.add(role2);
-      roles.add(role3);
-      repository.addMatch("topics.testTopic", roles);
-      repository.addMatch("queues.testQueue", roles);
-      EasyMock.replay(repository);
       deployer.deploy(org.jboss.messaging.utils.XMLUtil.stringToElement(conf));
       deployer.deploy(org.jboss.messaging.utils.XMLUtil.stringToElement(conf2));
-      EasyMock.verify(repository);
+      HashSet<Role> roles = (HashSet<Role>) repository.getMatch("topicjms.testTopic");
+      assertNotNull(roles);
+      assertEquals(3, roles.size());
+      for (Role role : roles)
+      {
+         if (role.getName().equals("guest"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("publisher"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("durpublisher"))
+         {
+            assertTrue(role.isConsume());
+            assertTrue(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertTrue(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertTrue(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else
+         {
+            fail("unexpected role");
+         }
+      }
+      roles = (HashSet<Role>) repository.getMatch("topicjms.testQueue");
+      assertNotNull(roles);
+      assertEquals(3, roles.size());
+      for (Role role : roles)
+      {
+         if (role.getName().equals("guest"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertFalse(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("publisher"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertFalse(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertFalse(role.isDeleteTempQueue());
+            assertFalse(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else if (role.getName().equals("durpublisher"))
+         {
+            assertTrue(role.isConsume());
+            assertFalse(role.isCreateDurableQueue());
+            assertTrue(role.isCreateTempQueue());
+            assertFalse(role.isDeleteDurableQueue());
+            assertTrue(role.isDeleteTempQueue());
+            assertFalse(role.isManage());
+            assertTrue(role.isSend());
+         }
+         else
+         {
+            fail("unexpected role");
+         }
+      }
    }
-   
+
    public void testNoRolesAdded() throws Exception
    {
-      HashSet<Role> roles = new HashSet<Role>();
-      repository.addMatch("queues.testQueue", roles);
-      EasyMock.replay(repository);
       deployer.deploy(org.jboss.messaging.utils.XMLUtil.stringToElement(noRoles));
-      EasyMock.verify(repository);
-   }*/
+      HashSet<Role> roles = (HashSet<Role>) repository.getMatch("topicjms.testQueue");
+      assertNull(roles);
+   }
 }




More information about the jboss-cvs-commits mailing list