You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2010/11/20 23:59:10 UTC
svn commit: r1037350 -
/directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java
Author: felixk
Date: Sat Nov 20 22:59:10 2010
New Revision: 1037350
URL: http://svn.apache.org/viewvc?rev=1037350&view=rev
Log:
Add some more tests
Modified:
directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java
Modified: directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java?rev=1037350&r1=1037349&r2=1037350&view=diff
==============================================================================
--- directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java (original)
+++ directory/apacheds/trunk/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlagsTest.java Sat Nov 20 22:59:10 2010
@@ -20,11 +20,14 @@
package org.apache.directory.server.kerberos.shared.messages.value.flags;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import org.junit.Before;
+import org.apache.directory.junit.tools.Concurrent;
+import org.apache.directory.junit.tools.ConcurrentJunitRunner;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
@@ -32,29 +35,88 @@ import org.junit.Test;
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
+@RunWith(ConcurrentJunitRunner.class)
+@Concurrent()
public class AbstractKerberosFlagsTest
{
+ @Test
+ public void testClearFlag() throws Exception
+ {
+ // Flags 1, 2, 4, 8 set
+ AbstractKerberosFlags akf = new AbstractKerberosFlags(
+ getBytes( ( int ) ( Math.pow( 2, TicketFlag.FORWARDABLE.getOrdinal() )
+ + Math.pow( 2, TicketFlag.FORWARDED.getOrdinal() ) + Math.pow( 2, TicketFlag.PROXY.getOrdinal() ) + Math
+ .pow( 2, TicketFlag.RENEWABLE.getOrdinal() ) ) ) )
+ {
+ private static final long serialVersionUID = 1L;
+ };
- AbstractKerberosFlags akf;
+ // unset flag 4
+ akf.clearFlag( TicketFlag.PROXY );
+ assertEquals(
+ "clear(KerberosFlag)",
+ ( int ) ( Math.pow( 2, TicketFlag.FORWARDABLE.getOrdinal() )
+ + Math.pow( 2, TicketFlag.FORWARDED.getOrdinal() ) + Math.pow( 2, TicketFlag.RENEWABLE.getOrdinal() ) ),
+ akf.getIntValue() );
+
+ // unset flag 2
+ akf.clearFlag( TicketFlag.FORWARDED.getOrdinal() );
+ assertEquals(
+ "clear(int)",
+ ( int ) ( Math.pow( 2, TicketFlag.FORWARDABLE.getOrdinal() ) + Math.pow( 2,
+ TicketFlag.RENEWABLE.getOrdinal() ) ), akf.getIntValue() );
+ }
- @Before
- public void setUp() throws Exception
+ @Test
+ public void testValue() throws Exception
{
- akf = new AbstractKerberosFlags()
+ // Flags 1, 2, 4, 8 set
+ AbstractKerberosFlags akfIntConstructor = new AbstractKerberosFlags( getBytes( ( int ) ( Math.pow( 2,
+ TicketFlag.FORWARDABLE.getOrdinal() )
+ + Math.pow( 2, TicketFlag.FORWARDED.getOrdinal() )
+ + Math.pow( 2, TicketFlag.PROXY.getOrdinal() ) + Math.pow( 2, TicketFlag.RENEWABLE.getOrdinal() ) ) ) )
+ {
+ private static final long serialVersionUID = 1L;
+ };
+
+ // No flags set
+ AbstractKerberosFlags akfEmptyConstructor = new AbstractKerberosFlags()
{
private static final long serialVersionUID = 1L;
};
+
+ // intValue
+ assertEquals( "intValue", 0, akfEmptyConstructor.getIntValue() );
+ assertEquals(
+ "intValue",
+ ( int ) ( Math.pow( 2, TicketFlag.FORWARDABLE.getOrdinal() )
+ + Math.pow( 2, TicketFlag.FORWARDED.getOrdinal() ) + Math.pow( 2, TicketFlag.PROXY.getOrdinal() ) + Math
+ .pow( 2, TicketFlag.RENEWABLE.getOrdinal() ) ), akfIntConstructor.getIntValue() );
+
+ // hexValue
+ // TODO The method getHexValue() is a bit confusing WRT its comment and naming and what the method really
+ // does. Ever seen a 'toHex' method returning an 'int'?
+ // assertEquals( "hexValue", Integer.toHexString( 0 ), Integer.toHexString( akfEmptyConstructor.getHexValue() ) );
+ // assertEquals( "hexValue", Integer.toHexString( ( int ) ( Math.pow( 2, TicketFlag.FORWARDABLE.getOrdinal() )
+ // + Math.pow( 2, TicketFlag.FORWARDED.getOrdinal() ) + Math.pow( 2, TicketFlag.PROXY.getOrdinal() ) + Math
+ // .pow( 2, TicketFlag.RENEWABLE.getOrdinal() ) ) ), Integer.toHexString( akfIntConstructor.getHexValue() ) );
}
@Test
- public void testFlags()
+ public void testFlagGetterSetter() throws Exception
{
- // MAX_VALUE is not a real ticket flag and will cause an Out Of Bounds Exception,
+ AbstractKerberosFlags akf = new AbstractKerberosFlags()
+ {
+ private static final long serialVersionUID = 1L;
+ };
+
+ // MAX_VALUE is not a real ticket flag and will cause an IndexOutOfBoundsException,
// so skip this
TicketFlag[] ticketFlags = new TicketFlag[TicketFlag.values().length - 1];
int i = 0;
+ int flagsValue = 0;
for ( TicketFlag tf : TicketFlag.values() )
{
if ( !tf.equals( TicketFlag.MAX_VALUE ) )
@@ -71,6 +133,7 @@ public class AbstractKerberosFlagsTest
if ( setFlag )
{
akf.setFlag( ticketFlag.getOrdinal() );
+ flagsValue += Math.pow( 2, ticketFlag.getOrdinal() );
}
setFlag = !setFlag;
}
@@ -81,13 +144,37 @@ public class AbstractKerberosFlagsTest
// Only every 2nd ticket flag is set
if ( setFlag )
{
- assertTrue( "TicketFlag: " + ticketFlag.toString(), akf.isFlagSet( ticketFlag ) );
+ assertTrue( "isFlagSet(TicketFlag): " + ticketFlag.toString(), akf.isFlagSet( ticketFlag ) );
+ assertTrue( "isFlagSet(int): " + ticketFlag.toString(), akf.isFlagSet( ticketFlag.getOrdinal() ) );
+ assertTrue( "isFlagSet(int,int): " + ticketFlag.toString(),
+ AbstractKerberosFlags.isFlagSet( flagsValue, ticketFlag.getOrdinal() ) );
}
else
{
- assertFalse( "TicketFlag: " + ticketFlag.toString(), akf.isFlagSet( ticketFlag ) );
+ assertFalse( "isFlagSet(TicketFlag): " + ticketFlag.toString(), akf.isFlagSet( ticketFlag ) );
+ assertFalse( "isFlagSet(int): " + ticketFlag.toString(), akf.isFlagSet( ticketFlag.getOrdinal() ) );
+ assertFalse( "isFlagSet(int,int): " + ticketFlag.toString(),
+ AbstractKerberosFlags.isFlagSet( flagsValue, ticketFlag.getOrdinal() ) );
}
setFlag = !setFlag;
}
+
+ }
+
+
+ /**
+ *
+ * Get the byte array representation of an int
+ *
+ * @param flags The flags as int
+ * @return The Flags as byte array
+ */
+ private byte[] getBytes( int flags )
+ {
+ return new byte[]
+ {
+ ( byte ) ( 0 ), // unused bits
+ ( byte ) ( flags >>> 24 ), ( byte ) ( ( flags >> 16 ) & 0x00ff ), ( byte ) ( ( flags >> 8 ) & 0x00ff ),
+ ( byte ) ( flags & 0x00ff ) };
}
}