package org.dcache.auth; import org.junit.Test; import static org.junit.Assert.*; public class FQANPrincipalTests { public static final String TEST_FQAN_STRING = "/atlas"; public static final FQAN TEST_FQAN = new FQAN( TEST_FQAN_STRING); public static final String OTHER_TEST_FQAN_STRING = "/cms"; @Test public void testCreateFromValidString() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN_STRING, true); assertEquals( "Check principal fqan in string form", TEST_FQAN_STRING, principal.getName()); } @Test(expected = IllegalArgumentException.class) public void testCreateFromNullStringFails() { new FQANPrincipal( (String) null, true); } @Test public void testCreateFromValidFqan() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, true); assertEquals( "Check principal has correct FQAN", TEST_FQAN, principal.getFqan()); } @Test(expected = IllegalArgumentException.class) public void testCreateFromNullFqanFails() { new FQANPrincipal( (FQAN) null, true); } @Test public void testCreatePrimary() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, true); assertTrue( "Check principal is primary", principal.isPrimaryGroup()); } @Test public void testCreateNonPrimary() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, false); assertFalse( "Check principal is not primary", principal.isPrimaryGroup()); } @Test public void testEqualsForSameObject() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, false); assertTrue( "Checking principal equals itself", principal.equals( principal)); } @Test public void testNotEqualsForDifferentClass() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, false); assertFalse( "Checking principal not equal to FQAN", principal.equals( TEST_FQAN)); assertFalse( "Checking principal not equal to FQAN-string", principal.equals( TEST_FQAN_STRING)); } @Test public void testEqualForEqualFqanPrimary() { FQANPrincipal p1 = new FQANPrincipal( TEST_FQAN, true); FQANPrincipal p2 = new FQANPrincipal( TEST_FQAN, true); assertTrue( "Checking p1 equals p2", p1.equals( p2)); assertTrue( "Checking p2 equals p1", p2.equals( p1)); } @Test public void testEqualForEqualFqanNonPrimary() { FQANPrincipal p1 = new FQANPrincipal( TEST_FQAN_STRING, false); FQANPrincipal p2 = new FQANPrincipal( TEST_FQAN_STRING, false); assertTrue( "Checking p1 equals p2", p1.equals( p2)); assertTrue( "Checking p2 equals p1", p2.equals( p1)); } @Test public void testNotEqualByFqan() { FQANPrincipal p1 = new FQANPrincipal( TEST_FQAN_STRING, false); FQANPrincipal p2 = new FQANPrincipal( OTHER_TEST_FQAN_STRING, false); assertFalse( "Checking p1 doesn't equal p2", p1.equals( p2)); assertFalse( "Checking p2 doesn't equal p1", p2.equals( p1)); } @Test public void testNotEqualByPrimary() { FQANPrincipal p1 = new FQANPrincipal( TEST_FQAN_STRING, true); FQANPrincipal p2 = new FQANPrincipal( TEST_FQAN_STRING, false); assertFalse( "Checking p1 doesn't equal p2", p1.equals( p2)); assertFalse( "Checking p2 doesn't equal p1", p2.equals( p1)); } @Test public void testGetFqanForFqanCreatedPrincipal() { FQANPrincipal principal = new FQANPrincipal( TEST_FQAN, true); assertEquals( "checking getFqan gets expected result", TEST_FQAN, principal.getFqan()); } }