package org.jivesoftware.smackx.pubsub;
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.io.Reader;
import java.io.StringReader;
import org.jivesoftware.smack.ThreadedDummyConnection;
import org.jivesoftware.smackx.pubsub.provider.ItemsProvider;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.xmlpull.mxp1.MXParser;
import org.xmlpull.v1.XmlPullParser;
public class ItemValidationTest
{
private ThreadedDummyConnection connection;
@Before
public void setUp() throws Exception
{
// Uncomment this to enable debug output
// Connection.DEBUG_ENABLED = true;
connection = new ThreadedDummyConnection();
connection.connect();
connection.login("me", "secret");
}
@After
public void tearDown() throws Exception
{
if (connection != null)
connection.disconnect();
}
@Test
public void verifyBasicItem() throws Exception
{
Item simpleItem = new Item();
String simpleCtrl = " ";
assertXMLEqual(simpleCtrl, simpleItem.toXML());
Item idItem = new Item("uniqueid");
String idCtrl = " ";
assertXMLEqual(idCtrl, idItem.toXML());
Item itemWithNodeId = new Item("testId", "testNode");
String nodeIdCtrl = " ";
assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML());
}
@Test
public void verifyPayloadItem() throws Exception
{
SimplePayload payload = new SimplePayload(null, null, "This is the payload");
PayloadItem simpleItem = new PayloadItem(payload);
String simpleCtrl = "- " + payload.toXML() + "
";
assertXMLEqual(simpleCtrl, simpleItem.toXML());
PayloadItem idItem = new PayloadItem("uniqueid", payload);
String idCtrl = "- " + payload.toXML() + "
";
assertXMLEqual(idCtrl, idItem.toXML());
PayloadItem itemWithNodeId = new PayloadItem("testId", "testNode", payload);
String nodeIdCtrl = "- " + payload.toXML() + "
";
assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML());
}
// @Test
// public void parseBasicItemWithoutNode() throws Exception
// {
// XmlPullParser parser = new MXParser();
// Reader reader = new StringReader(
// "" +
// "" +
// " " +
// "");
// parser.setInput(reader);
// ItemsProvider itemsProvider = new ItemsProvider();
// ItemsExtension ext = (ItemsExtension) itemsProvider.parseExtension(parser);
// Item basicItem = (Item) ext.getItems().get(0);
//
// assertEquals("testid1", basicItem.getId());
// assertNull(basicItem.getNode());
// }
// @Test
// public void parseBasicItemNode() throws Exception
// {
// BlockingQueue- itemQ = new ArrayBlockingQueue
- (1);
//
// setupListener(itemQ);
// Message itemMsg = getMessage("
- ");
// connection.addMessage(itemMsg);
//
// Item basicItem = itemQ.poll(2, TimeUnit.SECONDS);
//
// assertNotNull(basicItem);
// assertEquals("testid1", basicItem.getId());
// assertEquals("testNode", basicItem.getNode());
// }
}