/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.itest.store.dao; import com.enonic.cms.core.preference.PreferenceEntity; import com.enonic.cms.core.preference.PreferenceKey; import com.enonic.cms.itest.AbstractSpringTest; import com.enonic.cms.store.dao.PreferenceDao; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import static org.junit.Assert.*; public class PreferenceEntityDaoTest extends AbstractSpringTest { @Autowired private PreferenceDao preferenceDao; @Before public void beforeTest() throws Exception { addTestData(); } private void addTestData() { preferenceDao.store( createPreference( "user:tlund123.global.useHtmlMail", "true" ) ); preferenceDao.store( createPreference( "user:ssandvik425.global.useHtmlMail", "true if logged in via Firefox, Safari; no if logged in via Internet Explorer;" ) ); preferenceDao.store( createPreference( "user:007.global.smtpServer", "philipFry" ) ); preferenceDao.store( createPreference( "user:007.global.ftpServer", "turanga" ) ); preferenceDao.store( createPreference( "user:tlund123.site:0.language", "NO-no" ) ); preferenceDao.store( createPreference( "user:tlund123.site:1.language", "EN-gb" ) ); preferenceDao.store( createPreference( "user:tlund123.global.smtpServer", "zoidberg" ) ); preferenceDao.store( createPreference( "user:tlund123.global.httpServer", "flexo" ) ); preferenceDao.store( createPreference( "user:007.site:0.httpServer", "kwanzaa" ) ); } /** * Simple test to find the standard values by key. */ @Test public void testFindByKey() { preferenceDao.store( createPreference( "user:u1.global.useHtmlMail", "true" ) ); preferenceDao.store( createPreference( "user:u2.global.useHtmlMail", "false" ) ); preferenceDao.store( createPreference( "user:u3.global.useHtmlMail", "false" ) ); assertNotNull( preferenceDao.findByKey( new PreferenceKey( "user:u1.global.useHtmlMail" ) ) ); assertNotNull( preferenceDao.findByKey( new PreferenceKey( "user:u2.global.useHtmlMail" ) ) ); assertNull( preferenceDao.findByKey( new PreferenceKey( "user:u4.global.useHtmlMail" ) ) ); } /** * This test, stores a new object and changes the value of an old object, then fetches the objects back out to new variables and checks * that their values are correct. */ @Test public void testStorePreference() { PreferenceEntity testObj1 = preferenceDao.findByKey( new PreferenceKey( "user:tlund123.global.useHtmlMail" ) ); testObj1.setValue( "false" ); PreferenceEntity testObj2 = createPreference( "user:045.site:0.language", "NO-no" ); preferenceDao.store( testObj1 ); preferenceDao.store( testObj2 ); testObj1 = preferenceDao.findByKey( new PreferenceKey( "user:ssandvik425.global.useHtmlMail" ) ); testObj2 = preferenceDao.findByKey( new PreferenceKey( "user:tlund123.global.useHtmlMail" ) ); PreferenceEntity testObj3 = preferenceDao.findByKey( new PreferenceKey( "user:045.site:0.language" ) ); assertEquals( testObj1.getValue(), "true if logged in via Firefox, Safari; no if logged in via Internet Explorer;" ); assertEquals( testObj2.getValue(), "false" ); assertEquals( testObj3.getValue(), "NO-no" ); } @Test public void testFindByPrefix() { /*List<PreferenceEntity> result1 = dao.findByPrefix("user:tlund123"); List<PreferenceEntity> result2 = dao.findByPrefix("user:007"); List<PreferenceEntity> result3 = dao.findByPrefix("user:007.global"); assertEquals(5, result1.size()); assertEquals(3, result2.size()); assertEquals(2, result3.size());*/ } @Test public void testRemove() { PreferenceKey key = new PreferenceKey( "user:tlund123.site:0.language" ); PreferenceEntity preference = preferenceDao.findByKey( key ); assertNotNull( preference ); preferenceDao.delete( preference ); preference = preferenceDao.findByKey( key ); assertNull( preference ); } private PreferenceEntity createPreference( String keyStr, String value ) { PreferenceKey key = new PreferenceKey( keyStr ); PreferenceEntity pref = new PreferenceEntity(); pref.setKey( key ); pref.setValue( value ); return pref; } }