/* * Copyright (C) 2003-2013 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.forum.bbcode.base; import java.util.List; import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; import org.exoplatform.commons.testing.BaseExoTestCase; import org.exoplatform.component.test.ConfigurationUnit; import org.exoplatform.component.test.ConfiguredBy; import org.exoplatform.component.test.ContainerScope; import org.exoplatform.forum.bbcode.api.BBCode; import org.exoplatform.forum.bbcode.api.BBCodeService; import org.exoplatform.forum.bbcode.core.BBCodeServiceImpl; import org.exoplatform.forum.common.jcr.KSDataLocation; import org.exoplatform.forum.common.jcr.SessionManager; import org.exoplatform.services.jcr.ext.common.SessionProvider; @ConfiguredBy({ @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.portal-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.identity-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/exo.portal.component.test.jcr-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/standalone/test-portal-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/standalone/exo.bbcode.component.core.test.configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/standalone/exo.bbcode.test.jcr-configuration.xml"), @ConfigurationUnit(scope = ContainerScope.PORTAL, path = "conf/standalone/exo.bbcode.test.portal-configuration.xml") }) public abstract class BaseBBcodeTestCase extends BaseExoTestCase { protected BBCodeServiceImpl bbcodeServiceImpl; protected BBCodeService bbcodeService; protected KSDataLocation locator; protected SessionManager sessionManager; protected String bbcodesPath; @Override public void setUp() throws Exception { super.setUp(); // begin(); bbcodeServiceImpl = new BBCodeServiceImpl(); locator = getService(KSDataLocation.class); bbcodeService = getService(BBCodeService.class); bbcodeServiceImpl.setDataLocator(locator); sessionManager = locator.getSessionManager(); bbcodesPath = bbcodeServiceImpl.getDataLocator().getBBCodesLocation(); } @Override public void tearDown() throws Exception { for (BBCode bbcode : bbcodeService.getAll()) { bbcodeService.delete(bbcode.getId()); } // end(); } public <T> T getService(Class<T> clazz) { return (T) getContainer().getComponentInstanceOfType(clazz); } public BBCode createBBCode(String tag, String replacement, String description, String example, boolean option, boolean active) { BBCode bbc = new BBCode(); bbc.setTagName(tag); bbc.setReplacement(replacement); bbc.setDescription(description); bbc.setExample(example); bbc.setOption(option); bbc.setActive(active); return bbc; } public boolean nodeExists(String path) { boolean isExist = false; Node node = getNode(path); isExist = (node != null) ? true : false; if (isExist) { try { node.getSession().logout(); } catch (RepositoryException e) { } } return isExist; } public void assertNodeExists(String path) { assertTrue(nodeExists(path)); } public void assertNodeNotExists(String path) { assertFalse(nodeExists(path)); } public Node getNode(String path) { SessionProvider provider = SessionProvider.createSystemProvider(); if (path.indexOf("/") == 0) { path = path.substring(0); } Session session = sessionManager.getSession(provider); try { return session.getRootNode().getNode(path); } catch (Exception e) { session.logout(); return null; } } public void assertContains(List<String> actual, String... strs) { for (int i = 0; i < strs.length; i++) { if(!actual.contains(strs[i])) { assertTrue(false); } } assertTrue(true); } }