package org.buddycloud.channelserver.db.jdbc; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.sql.SQLException; import org.buddycloud.channelserver.Configuration; import org.buddycloud.channelserver.channel.Conf; import org.buddycloud.channelserver.db.CloseableIterator; import org.buddycloud.channelserver.packetHandler.iq.IQTestHandler; import org.buddycloud.channelserver.pubsub.accessmodel.AccessModels; import org.buddycloud.channelserver.pubsub.model.NodeItem; import org.junit.Before; import org.junit.Test; public class JDBCNodeStoreFirehoseTest extends JDBCNodeStoreAbstract { public JDBCNodeStoreFirehoseTest() throws SQLException, IOException, ClassNotFoundException { dbTester = new DatabaseTester(); IQTestHandler.readConf(); } @Before public void setup() throws SQLException, IOException { dbTester.loadData("node_1"); } @Test public void testGetFirehoseOpenNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.open.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, false, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(5, itemCount); } @Test public void testNonAdminGetFirehoseAuthorizedNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.authorize.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, false, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(0, itemCount); } @Test public void testAdminGetFirehoseAuthorizedNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.authorize.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, true, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(5, itemCount); } @Test public void testAdminGetFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, true, TEST_SERVER2_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(5, itemCount); } @Test public void testNonAdminSameDomainGetFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, false, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(5, itemCount); } @Test public void testNonAdminGetFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, false, TEST_SERVER2_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(0, itemCount); } @Test public void testGetFirehoseNoDomainSet() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.open.toString()); Configuration.getInstance().remove( Configuration.CONFIGURATION_SERVER_DOMAIN); Configuration.getInstance().remove( Configuration.CONFIGURATION_SERVER_TOPICS_DOMAIN); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, null, false, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(5, itemCount); } @Test public void testGetFirehoseRSM() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.open.toString()); CloseableIterator<NodeItem> firehose = store.getFirehose( Integer.MAX_VALUE, TEST_SERVER1_NODE1_ITEM4_GLOBAL_ID, false, TEST_SERVER1_HOSTNAME); int itemCount = 0; while (firehose.hasNext()) { firehose.next(); itemCount++; } assertEquals(3, itemCount); } @Test public void testCountFirehoseItemsOpenNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.open.toString()); int firehoseItemCount = store.getFirehoseItemCount(false, TEST_SERVER1_HOSTNAME); assertEquals(5, firehoseItemCount); } @Test public void testNonAdminCountFirehoseItemsAuthorizeNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.authorize.toString()); int firehoseItemCount = store.getFirehoseItemCount(false, TEST_SERVER1_HOSTNAME); assertEquals(0, firehoseItemCount); } @Test public void testAdminCountFirehoseItemsAuthorizeNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.authorize.toString()); int firehoseItemCount = store.getFirehoseItemCount(true, TEST_SERVER1_HOSTNAME); assertEquals(5, firehoseItemCount); } @Test public void testAdminCountFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); int firehoseItemCount = store.getFirehoseItemCount(true, TEST_SERVER2_HOSTNAME); assertEquals(5, firehoseItemCount); } @Test public void testNonAdminSameDomainCountFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); int firehoseItemCount = store.getFirehoseItemCount(false, TEST_SERVER1_HOSTNAME); assertEquals(5, firehoseItemCount); } @Test public void testNonAdminCounttFirehoseLocalNode() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.local.toString()); int firehoseItemCount = store.getFirehoseItemCount(false, TEST_SERVER2_HOSTNAME); assertEquals(0, firehoseItemCount); } @Test public void testCountFirehoseItemsNoDomainSet() throws Exception { store.setNodeConfValue(TEST_SERVER1_NODE1_ID, Conf.ACCESS_MODEL, AccessModels.open.toString()); Configuration.getInstance().remove( Configuration.CONFIGURATION_SERVER_DOMAIN); Configuration.getInstance().remove( Configuration.CONFIGURATION_SERVER_TOPICS_DOMAIN); int firehoseItemCount = store.getFirehoseItemCount(false, TEST_SERVER1_HOSTNAME); assertEquals(5, firehoseItemCount); } }