From a9d69ac4e872ce6ff11fa136400d85ee3fb52fad Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Sat, 15 Nov 2008 10:54:34 +0000 Subject: [PATCH] Tidied up test class. --- .../objectidentity/ObjectIdentityTests.java | 351 ++++++++---------- 1 file changed, 162 insertions(+), 189 deletions(-) diff --git a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java b/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java index ce9d1261bd..e168594ecd 100644 --- a/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java +++ b/acl/src/test/java/org/springframework/security/acls/objectidentity/ObjectIdentityTests.java @@ -1,204 +1,177 @@ package org.springframework.security.acls.objectidentity; -import junit.framework.Assert; -import junit.framework.TestCase; +import static org.junit.Assert.*; +import org.junit.Test; import org.springframework.security.acls.IdentityUnavailableException; /** * Tests for {@link ObjectIdentityImpl}. - * + * * @author Andrei Stefan */ -public class ObjectIdentityTests extends TestCase { - - //~ Methods ======================================================================================================== - - public void testConstructorsRequiredFields() throws Exception { - // Check one-argument constructor required field - try { - ObjectIdentity obj = new ObjectIdentityImpl(null); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - - // Check String-Serializable constructor required field - try { - ObjectIdentity obj = new ObjectIdentityImpl("", new Long(1)); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - - // Check Serializable parameter is not null - try { - ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", null); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - - // The correct way of using String-Serializable constructor - try { - ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", - new Long(1)); - Assert.assertTrue(true); - } - catch (IllegalArgumentException notExpected) { - Assert.fail("It shouldn't have thrown IllegalArgumentException"); - } - - // Check the Class-Serializable constructor - try { - ObjectIdentity obj = new ObjectIdentityImpl(MockIdDomainObject.class, null); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - } - - public void testGetIdMethodConstraints() throws Exception { - // Check the getId() method is present - try { - ObjectIdentity obj = new ObjectIdentityImpl("A_STRING_OBJECT"); - Assert.fail("It should have thrown IdentityUnavailableException"); - } - catch (IdentityUnavailableException expected) { - Assert.assertTrue(true); - } - - // getId() should return a non-null value - MockIdDomainObject mockId = new MockIdDomainObject(); - try { - ObjectIdentity obj = new ObjectIdentityImpl(mockId); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - - // getId() should return a Serializable object - mockId.setId(new MockIdDomainObject()); - try { - ObjectIdentity obj = new ObjectIdentityImpl(mockId); - Assert.fail("It should have thrown IllegalArgumentException"); - } - catch (IllegalArgumentException expected) { - Assert.assertTrue(true); - } - - // getId() should return a Serializable object - mockId.setId(new Long(100)); - try { - ObjectIdentity obj = new ObjectIdentityImpl(mockId); - Assert.assertTrue(true); - } - catch (IllegalArgumentException expected) { - Assert.fail("It shouldn't have thrown IllegalArgumentException"); - } - } - - public void testConstructorInvalidClassParameter() throws Exception { - try { - ObjectIdentity obj = new ObjectIdentityImpl("not.a.Class", new Long(1)); - } - catch (IllegalStateException expected) { - return; - } - Assert.fail("It should have thrown IllegalStateException"); - } - - public void testEquals() throws Exception { - ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)); - MockIdDomainObject mockObj = new MockIdDomainObject(); - mockObj.setId(new Long(1)); - - String string = "SOME_STRING"; - Assert.assertNotSame(obj, string); - Assert.assertTrue(!obj.equals(null)); - Assert.assertTrue(!obj.equals("DIFFERENT_OBJECT_TYPE")); - Assert.assertTrue(!obj - .equals(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", - new Long(2)))); - Assert.assertTrue(!obj.equals(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockOtherIdDomainObject", - new Long(1)))); - Assert.assertEquals( - new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", - new Long(1)), obj); - Assert.assertTrue(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)) - .equals(obj)); - Assert.assertTrue(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)) - .equals(new ObjectIdentityImpl(mockObj))); - } - - public void testHashCode() throws Exception { - ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)); - Assert.assertEquals(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)) - .hashCode(), obj.hashCode()); - Assert.assertTrue(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockOtherIdDomainObject", - new Long(1)).hashCode() != obj.hashCode()); - Assert.assertTrue(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(2)) - .hashCode() != obj.hashCode()); - } - +public class ObjectIdentityTests { + + private static final String DOMAIN_CLASS = + "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject"; + + //~ Methods ======================================================================================================== + + @Test + public void constructorsRespectRequiredFields() throws Exception { + // Check one-argument constructor required field + try { + new ObjectIdentityImpl(null); + fail("It should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException expected) { + } + + // Check String-Serializable constructor required field + try { + new ObjectIdentityImpl("", new Long(1)); + fail("It should have thrown IllegalArgumentException"); + } catch (IllegalArgumentException expected) { + } + + // Check Serializable parameter is not null + try { + new ObjectIdentityImpl(DOMAIN_CLASS, null); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + + // The correct way of using String-Serializable constructor + try { + new ObjectIdentityImpl(DOMAIN_CLASS, new Long(1)); + } + catch (IllegalArgumentException notExpected) { + fail("It shouldn't have thrown IllegalArgumentException"); + } + + // Check the Class-Serializable constructor + try { + new ObjectIdentityImpl(MockIdDomainObject.class, null); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + + } + } + + @Test + public void testGetIdMethodConstraints() throws Exception { + // Check the getId() method is present + try { + new ObjectIdentityImpl("A_STRING_OBJECT"); + fail("It should have thrown IdentityUnavailableException"); + } + catch (IdentityUnavailableException expected) { + + } + + // getId() should return a non-null value + MockIdDomainObject mockId = new MockIdDomainObject(); + try { + new ObjectIdentityImpl(mockId); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + + } + + // getId() should return a Serializable object + mockId.setId(new MockIdDomainObject()); + try { + new ObjectIdentityImpl(mockId); + fail("It should have thrown IllegalArgumentException"); + } + catch (IllegalArgumentException expected) { + } + + // getId() should return a Serializable object + mockId.setId(new Long(100)); + try { + new ObjectIdentityImpl(mockId); + } + catch (IllegalArgumentException expected) { + } + } + + @Test(expected=IllegalStateException.class) + public void testConstructorInvalidClassParameter() throws Exception { + new ObjectIdentityImpl("not.a.Class", new Long(1)); + } + + @Test + public void testEquals() throws Exception { + ObjectIdentity obj = new ObjectIdentityImpl(DOMAIN_CLASS, new Long(1)); + MockIdDomainObject mockObj = new MockIdDomainObject(); + mockObj.setId(new Long(1)); + + String string = "SOME_STRING"; + assertNotSame(obj, string); + assertFalse(obj.equals(null)); + assertFalse(obj.equals("DIFFERENT_OBJECT_TYPE")); + assertFalse(obj.equals(new ObjectIdentityImpl(DOMAIN_CLASS,new Long(2)))); + assertFalse(obj.equals(new ObjectIdentityImpl( + "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockOtherIdDomainObject", + new Long(1)))); + assertEquals(new ObjectIdentityImpl(DOMAIN_CLASS,new Long(1)), obj); + assertEquals(obj, new ObjectIdentityImpl(mockObj)); + } + + @Test + public void testHashCode() throws Exception { + ObjectIdentity obj = new ObjectIdentityImpl(DOMAIN_CLASS, new Long(1)); + assertEquals(new ObjectIdentityImpl(DOMAIN_CLASS, new Long(1)).hashCode(), obj.hashCode()); + assertTrue(new ObjectIdentityImpl( + "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockOtherIdDomainObject", + new Long(1)).hashCode() != obj.hashCode()); + assertTrue(new ObjectIdentityImpl(DOMAIN_CLASS, new Long(2)).hashCode() != obj.hashCode()); + } + /* public void testHashCodeDifferentSerializableTypes() throws Exception { ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)); - Assert.assertEquals(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", "1") + DOMAIN_CLASS, new Long(1)); + assertEquals(new ObjectIdentityImpl( + DOMAIN_CLASS, "1") .hashCode(), obj.hashCode()); - Assert.assertEquals(new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", + assertEquals(new ObjectIdentityImpl( + DOMAIN_CLASS, new Integer(1)).hashCode(), obj.hashCode()); }*/ - - public void testGetters() throws Exception { - ObjectIdentity obj = new ObjectIdentityImpl( - "org.springframework.security.acls.objectidentity.ObjectIdentityTests$MockIdDomainObject", new Long(1)); - Assert.assertEquals(new Long(1), obj.getIdentifier()); - Assert.assertEquals(MockIdDomainObject.class, obj.getJavaType()); - } - - //~ Inner Classes ================================================================================================== - - private class MockIdDomainObject { - private Object id; - - public Object getId() { - return id; - } - - public void setId(Object id) { - this.id = id; - } - } - - private class MockOtherIdDomainObject { - private Object id; - - public Object getId() { - return id; - } - - public void setId(Object id) { - this.id = id; - } - } + + @Test + public void testGetters() throws Exception { + ObjectIdentity obj = new ObjectIdentityImpl(DOMAIN_CLASS, new Long(1)); + assertEquals(new Long(1), obj.getIdentifier()); + assertEquals(MockIdDomainObject.class, obj.getJavaType()); + } + + //~ Inner Classes ================================================================================================== + + private class MockIdDomainObject { + private Object id; + + public Object getId() { + return id; + } + + public void setId(Object id) { + this.id = id; + } + } + + private class MockOtherIdDomainObject { + private Object id; + + public Object getId() { + return id; + } + + public void setId(Object id) { + this.id = id; + } + } }