/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.preference; import org.junit.Test; import com.enonic.cms.core.InvalidKeyException; import com.enonic.cms.core.security.user.UserKey; import static org.junit.Assert.*; public class PreferenceKeyTest { @Test public void testToString() { assertEquals( "USER:ABC.GLOBAL.language", new PreferenceKey( new UserKey( "ABC" ), PreferenceScopeType.GLOBAL, null, "language" ).getRawKey() ); assertEquals( "USER:ABC.SITE:1.language", new PreferenceKey( new UserKey( "ABC" ), PreferenceScopeType.SITE, new PreferenceScopeKey( "1" ), "language" ).toString() ); } @Test public void testCreateFromString() { PreferenceKey key = new PreferenceKey( "USER:ABC.SITE:1.language" ); assertEquals( "USER:ABC.SITE:1.language", key.getRawKey() ); assertEquals( "USER:ABC.SITE:1.language", key.toString() ); assertEquals( "USER", key.getType() ); assertEquals( "ABC", key.getTypeKey() ); assertEquals( PreferenceScopeType.SITE, key.getScopeType() ); assertEquals( new PreferenceScopeKey( "1" ), key.getScopeKey() ); assertEquals( "language", key.getBaseKey() ); } @Test public void testRawKey() { assertEquals( "USER:ABC.GLOBAL.language", new PreferenceKey( new UserKey( "ABC" ), PreferenceScopeType.GLOBAL, null, "language" ).getRawKey() ); assertEquals( "USER:ABC.SITE:1.language", new PreferenceKey( new UserKey( "ABC" ), PreferenceScopeType.SITE, new PreferenceScopeKey( "1" ), "language" ).getRawKey() ); } @Test public void testPreferenceKeyToString() { assertEquals( "user:ABC123.global.language", new PreferenceKey( "user:ABC123.global.language" ).toString() ); assertEquals( "user:ABC123.site:1.language", new PreferenceKey( "user:ABC123.site:1.language" ).toString() ); assertEquals( "user:ABC123.page:101.language", new PreferenceKey( "user:ABC123.page:101.language" ).toString() ); assertEquals( "user:ABC123.portlet:101:53.language", new PreferenceKey( "user:ABC123.portlet:101:53.language" ).toString() ); assertEquals( "user:ABC123.global.language.dialect", new PreferenceKey( "user:ABC123.global.language.dialect" ).toString() ); assertEquals( "user:ABC123.global.language:dialect", new PreferenceKey( "user:ABC123.global.language:dialect" ).toString() ); } @Test public void testGetRawKey() { assertEquals( "user:ABC123.global.language", new PreferenceKey( "user:ABC123.global.language" ).getRawKey() ); } @Test public void testGetKeyExcludingTypePart() { assertEquals( "site:0.language", new PreferenceKey( "user:ABC.site:0.language" ).getKeyExcludingTypePart() ); assertEquals( "site:0.language:dialect", new PreferenceKey( "user:ABC.site:0.language:dialect" ).getKeyExcludingTypePart() ); } @Test public void testGetType() { assertEquals( "USER", new PreferenceKey( "user:ABC.site:0.language" ).getType() ); assertEquals( "USER", new PreferenceKey( "user:ABC.site:0.language:dialect" ).getType() ); } @Test public void testGetTypeKey() { assertEquals( "1", new PreferenceKey( "user:1.site:0.language" ).getTypeKey() ); assertEquals( "1", new PreferenceKey( "user:1.site:0.language:dialect" ).getTypeKey() ); } @Test public void testGetScope() { assertEquals( new PreferenceScopeKey( "0" ), new PreferenceKey( "user:tlund123.site:0.language.2" ).getScopeKey() ); assertEquals( PreferenceScopeType.GLOBAL, new PreferenceKey( "user:ABC.global.baseKey" ).getScopeType() ); assertEquals( PreferenceScopeType.SITE, new PreferenceKey( "user:ABC.site:0.baseKey" ).getScopeType() ); assertEquals( PreferenceScopeType.PAGE, new PreferenceKey( "user:ABC.page:0.baseKey" ).getScopeType() ); assertEquals( PreferenceScopeType.PORTLET, new PreferenceKey( "user:ABC.portlet:0.baseKey" ).getScopeType() ); assertEquals( PreferenceScopeType.PORTLET, new PreferenceKey( "user:ABC.portlet:0.baseKey:extra" ).getScopeType() ); } @Test public void testGetScopeKey() { assertEquals( new PreferenceScopeKey( "123" ), new PreferenceKey( "user:ABC.site:123.language" ).getScopeKey() ); assertEquals( new PreferenceScopeKey( "123" ), new PreferenceKey( "user:ABC.site:123.language:dialect" ).getScopeKey() ); } @Test public void testWindowKey() { PreferenceKey preferenceKey = new PreferenceKey( ( "USER:3AC11D7A2123CC625E87B9ECB3D67B446AB42501.WINDOW:105:75.wintest" ) ); assertNotNull( preferenceKey.getScopeKey() ); assertEquals( new Integer( 105 ), preferenceKey.getScopeKey().getFirstKey() ); assertEquals( new Integer( 75 ), preferenceKey.getScopeKey().getSecondKey() ); } @Test public void testBaseKey() { assertEquals( "httpServer", new PreferenceKey( "user:ABC.site:0.httpServer" ).getBaseKey() ); assertEquals( "language", new PreferenceKey( "user:ABC.site:0.language" ).getBaseKey() ); assertEquals( "language.dialect", new PreferenceKey( "user:ABC.site:0.language.dialect" ).getBaseKey() ); assertEquals( "language:dialect", new PreferenceKey( "user:ABC.site:0.language:dialect" ).getBaseKey() ); } @Test(expected = InvalidKeyException.class) public void testIllegalPreferenceKey1() { new PreferenceKey( null ); } @Test(expected = InvalidKeyException.class) public void testIllegalPreferenceKey2() { new PreferenceKey( "" ); } @Test(expected = InvalidKeyException.class) public void testIllegalPreferenceKey3() { new PreferenceKey( "language" ); } @Test(expected = InvalidKeyException.class) public void testIllegalPreferenceKey4() { new PreferenceKey( "site:4.language" ); } @Test(expected = InvalidKeyException.class) public void testIllegalPreferenceKey5() { new PreferenceKey( "Test:007.site:4" ); } }