/* * Weblounge: Web Content Management System * Copyright (c) 2003 - 2011 The Weblounge Team * http://entwinemedia.com/weblounge * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package ch.entwine.weblounge.common.impl.language; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import ch.entwine.weblounge.common.language.Localizable.LanguageResolution; import org.junit.Test; /** * Test case for the {@link LocalizableContent} implementation. */ public class LocalizableContentTest extends LocalizableObjectTest { /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#clear()}. */ @Test public void testClear() { content.clear(); assertEquals(0, content.size()); assertFalse(content.supportsLanguage(english)); assertFalse(content.supportsLanguage(french)); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#isEmpty()}. */ @Test public void testIsEmpty() { assertFalse(content.isEmpty()); content.clear(); assertTrue(content.isEmpty()); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#size()}. */ @Test public void testSize() { assertEquals(2, content.size()); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#values()}. */ @Test public void testValues() { assertEquals(2, content.values().size()); assertTrue(content.values().contains(englishLocale.getDisplayLanguage(englishLocale))); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#put(java.lang.Object, ch.entwine.weblounge.common.language.Language)}. */ @Test public void testPut() { content.put(englishLocale.getDisplayLanguage(), english); assertEquals(2, content.size()); content.put(italianLocale.getDisplayLanguage(), italian); assertEquals(3, content.size()); assertTrue(content.supportsLanguage(italian)); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#get()}. */ @Test public void testGet() { assertEquals(englishLocale.getDisplayLanguage(englishLocale), content.get()); assertEquals(englishLocale.getDisplayLanguage(englishLocale), content.get(italian)); assertTrue(content.get(italian, true) == null); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#get(ch.entwine.weblounge.common.language.Language)}. */ @Test public void testGetLanguage() { assertEquals(english, content.getLanguage()); assertEquals(englishLocale.getDisplayLanguage(englishLocale), content.get(italian)); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#get(ch.entwine.weblounge.common.language.Language, boolean)}. */ @Test public void testGetLanguageBoolean() { assertEquals(englishLocale.getDisplayLanguage(englishLocale), content.get(italian, false)); assertTrue(content.get(italian, true) == null); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#clone()}. */ @SuppressWarnings("unchecked") @Test public void testClone() { content.setDefaultLanguage(italian); content.setLanguageResolution(LanguageResolution.Default); LocalizableContent<String> americanEnglish = null; try { americanEnglish = (LocalizableContent<String>)content.clone(); } catch (CloneNotSupportedException e) { fail("Creating clone of localizable content failed"); return; } assertEquals(content.size(), americanEnglish.size()); assertEquals(content.getLanguage(), americanEnglish.getLanguage()); assertEquals(content.getOriginalLanguage(), americanEnglish.getOriginalLanguage()); assertEquals(content.getLanguageResolution(), americanEnglish.getLanguageResolution()); assertEquals(content.get(), americanEnglish.get()); assertEquals(content.get(english), americanEnglish.get(english)); assertEquals(content.get(french), americanEnglish.get(french)); assertEquals(content.get(italian), americanEnglish.get(italian)); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#toString()}. */ @Test public void testToString() { assertEquals(englishLocale.getDisplayLanguage(englishLocale), content.toString()); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#toString(ch.entwine.weblounge.common.language.Language)}. */ @Test public void testToStringLanguage() { assertEquals(englishLocale.getDisplayLanguage(frenchLocale), content.toString(french)); } /** * Test method for {@link ch.entwine.weblounge.common.impl.language.LocalizableContent#toString(ch.entwine.weblounge.common.language.Language, boolean)}. */ @Test public void testToStringLanguageBoolean() { assertTrue(content.toString(italian, true) == null); } }