package org.buddycloud.channelserver.db.jdbc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import org.buddycloud.channelserver.packetHandler.iq.IQTestHandler;
import org.buddycloud.channelserver.pubsub.affiliation.Affiliations;
import org.buddycloud.channelserver.pubsub.model.NodeMembership;
import org.buddycloud.channelserver.pubsub.model.impl.NodeMembershipImpl;
import org.buddycloud.channelserver.pubsub.subscription.Subscriptions;
import org.junit.Test;
public class JDBCNodeStoreMembershipTest extends JDBCNodeStoreAbstract {
public JDBCNodeStoreMembershipTest() throws SQLException, IOException, ClassNotFoundException {
dbTester = new DatabaseTester();
IQTestHandler.readConf();
}
@Test
public void canGetNodeMembership() throws Exception {
dbTester.loadData("node_1");
NodeMembership result = store.getNodeMembership(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID);
NodeMembership expected =
new NodeMembershipImpl(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID, Subscriptions.subscribed, Affiliations.owner, null);
assertEquals("An unexpected node membership was returned", expected, result);
}
@Test
public void canGetNodeMembershipWhereTheresOnlySubscription() throws Exception {
dbTester.loadData("node_1");
store.deleteUserAffiliations(TEST_SERVER1_USER1_JID);
NodeMembership result = store.getNodeMembership(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID);
NodeMembership expected = new NodeMembershipImpl(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID, Subscriptions.subscribed, Affiliations.none, null);
assertEquals("An unexpected node membership was returned", expected, result);
}
@Test
public void canGetNodeMembershipWhereTheresNoMembership() throws Exception {
NodeMembership result = store.getNodeMembership(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID);
NodeMembership expected = new NodeMembershipImpl(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID, Subscriptions.none, Affiliations.none, null);
assertEquals("An unexpected node membership was returned", expected, result);
}
@Test
public void querySelectsTheMostRecentUpdatedDate() throws Exception {
dbTester.loadData("node_1");
Date originalDate = store.getNodeMembership(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID).getLastUpdated();
store.setUserAffiliation(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID, Affiliations.owner);
Date newDate = store.getNodeMembership(TEST_SERVER1_NODE1_ID, TEST_SERVER1_USER1_JID).getLastUpdated();
assertTrue(newDate.after(originalDate));
}
}