blob: a148d361dd319afb112af8e05cd7806356965e8a [file] [log] [blame]
/*
* Copyright 2005 Sun Microsystems, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.roller.planet.business;
import java.util.Date;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.planet.pojos.Planet;
import org.apache.roller.planet.pojos.SubscriptionEntry;
import org.apache.roller.planet.pojos.PlanetGroup;
import org.apache.roller.planet.pojos.Subscription;
import org.apache.roller.weblogger.TestUtils;
import org.apache.roller.weblogger.business.WebloggerFactory;
/**
* Test planet Entry functionality.
*/
public class EntryFunctionalTests extends TestCase {
public static Log log = LogFactory.getLog(EntryFunctionalTests.class);
private Planet testPlanet = null;
private PlanetGroup testGroup1 = null;
private Subscription testSub1 = null;
private Subscription testSub2 = null;
private SubscriptionEntry testEntry1 = null;
private SubscriptionEntry testEntry2 = null;
private SubscriptionEntry testEntry3 = null;
protected void setUp() throws Exception {
// setup planet
TestUtils.setupWeblogger();
log.info("ENTERED");
testPlanet = TestUtils.setupPlanet("entryFuncTestPlanet");
testGroup1 = TestUtils.setupGroup(testPlanet, "entryFuncTestGroup");
testSub1 = TestUtils.setupSubscription("entryFuncTestSub1");
testSub2 = TestUtils.setupSubscription("entryFuncTestSub2");
testEntry1 = TestUtils.setupEntry(testSub1, "entryFuncTestEntry1");
testEntry2 = TestUtils.setupEntry(testSub2, "entryFuncTestEntry2");
testEntry3 = TestUtils.setupEntry(testSub2, "entryFuncTestEntry3");
// now associate both subscriptions with the test group
testGroup1.getSubscriptions().add(testSub1);
testSub1.getGroups().add(testGroup1);
testGroup1.getSubscriptions().add(testSub2);
testSub2.getGroups().add(testGroup1);
WebloggerFactory.getWeblogger().getPlanetManager().saveGroup(testGroup1);
WebloggerFactory.getWeblogger().flush();
log.info("EXITED");
}
protected void tearDown() throws Exception {
log.info("ENTERED");
TestUtils.teardownSubscription(testSub1.getId());
TestUtils.teardownSubscription(testSub2.getId());
TestUtils.teardownGroup(testGroup1.getId());
TestUtils.teardownPlanet(testPlanet.getId());
log.info("EXITED");
}
public void testEntryLookups() throws Exception {
PlanetManager mgr = WebloggerFactory.getWeblogger().getPlanetManager();
// by id
SubscriptionEntry entry = mgr.getEntryById(testEntry1.getId());
assertNotNull(entry);
assertEquals("entryFuncTestEntry1", entry.getPermalink());
// by subscription
Subscription sub = mgr.getSubscriptionById(testSub2.getId());
assertEquals(2, sub.getEntries().size());
// by subscription through manager
assertEquals(2, mgr.getEntries(sub, 0, 10).size());
// by group
PlanetGroup group = mgr.getGroupById(testGroup1.getId());
assertEquals(3, mgr.getEntries(group, 0, 10).size());
// by group with timeframe constraint
assertEquals(0, mgr.getEntries(group, new Date(), null, 0, 10).size());
}
public void testDeleteEntries() throws Exception {
PlanetManager mgr = WebloggerFactory.getWeblogger().getPlanetManager();
Subscription sub = mgr.getSubscriptionById(testSub2.getId());
// make sure entries are there
assertEquals(2, sub.getEntries().size());
// purge entries
mgr.deleteEntries(sub);
TestUtils.endSession(true);
// verify
sub = mgr.getSubscriptionById(testSub2.getId());
assertEquals(0, sub.getEntries().size());
}
}