[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