/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2009-2011 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
* OpenNMS(R) is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* OpenNMS(R) 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 OpenNMS(R). If not, see:
* http://www.gnu.org/licenses/
*
* For more information contact:
* OpenNMS(R) Licensing <license@opennms.org>
* http://www.opennms.org/
* http://www.opennms.com/
*******************************************************************************/
package org.opennms.web.svclayer.support;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.ArrayList;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
import org.opennms.netmgt.provision.persist.DefaultForeignSourceService;
import org.opennms.netmgt.provision.persist.FilesystemForeignSourceRepository;
import org.opennms.netmgt.provision.persist.ForeignSourceService;
import org.opennms.netmgt.provision.persist.foreignsource.ForeignSource;
import org.opennms.netmgt.provision.persist.foreignsource.PluginConfig;
public class DefaultForeignSourceServiceTest {
private FilesystemForeignSourceRepository m_deployed;
private FilesystemForeignSourceRepository m_pending;
private ForeignSourceService m_service;
@Before
public void setUp() {
FileUtils.deleteQuietly(new File("target/foreign-sources"));
FileUtils.deleteQuietly(new File("target/imports"));
m_deployed = new FilesystemForeignSourceRepository();
m_deployed.setForeignSourcePath("target/foreign-sources/deployed");
m_deployed.setRequisitionPath("target/imports/deployed");
m_pending = new FilesystemForeignSourceRepository();
m_pending.setForeignSourcePath("target/foreign-sources");
m_pending.setRequisitionPath("target/imports");
m_service = new DefaultForeignSourceService();
m_service.setDeployedForeignSourceRepository(m_deployed);
m_service.setPendingForeignSourceRepository(m_pending);
}
@Test
public void integrationTest() throws Exception {
assertTrue(m_deployed.getForeignSources().isEmpty());
assertTrue(m_pending.getForeignSources().isEmpty());
assertEquals(0, m_service.getAllForeignSources().size());
// create a new foreign source
ForeignSource fs = m_service.getForeignSource("test");
// test doesn't exist, so it should tell us that it's based on the default foreign source
assertTrue(fs.isDefault());
// modify it and save
fs.setDetectors(new ArrayList<PluginConfig>());
m_service.saveForeignSource("test", fs);
// now it shouln't be marked as default, since we've saved a modified version
fs = m_service.getForeignSource("test");
assertFalse(fs.isDefault());
// we like it so much, let's make it the default!
m_service.saveForeignSource("default", fs);
fs = m_service.getForeignSource("monkey");
assertTrue(fs.isDefault());
}
}