/** * $RCSfile$ * $Revision$ * $Date$ * * Copyright 2003-2007 Jive Software. * * All rights reserved. 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.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 = "<item />"; assertXMLEqual(simpleCtrl, simpleItem.toXML()); Item idItem = new Item("uniqueid"); String idCtrl = "<item id='uniqueid'/>"; assertXMLEqual(idCtrl, idItem.toXML()); Item itemWithNodeId = new Item("testId", "testNode"); String nodeIdCtrl = "<item id='testId' node='testNode' />"; assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML()); } @Test public void verifyPayloadItem() throws Exception { SimplePayload payload = new SimplePayload(null, null, "<data>This is the payload</data>"); PayloadItem<SimplePayload> simpleItem = new PayloadItem<SimplePayload>(payload); String simpleCtrl = "<item>" + payload.toXML() + "</item>"; assertXMLEqual(simpleCtrl, simpleItem.toXML()); PayloadItem<SimplePayload> idItem = new PayloadItem<SimplePayload>("uniqueid", payload); String idCtrl = "<item id='uniqueid'>" + payload.toXML() + "</item>"; assertXMLEqual(idCtrl, idItem.toXML()); PayloadItem<SimplePayload> itemWithNodeId = new PayloadItem<SimplePayload>("testId", "testNode", payload); String nodeIdCtrl = "<item id='testId' node='testNode'>" + payload.toXML() + "</item>"; assertXMLEqual(nodeIdCtrl, itemWithNodeId.toXML()); } // @Test // public void parseBasicItemWithoutNode() throws Exception // { // XmlPullParser parser = new MXParser(); // Reader reader = new StringReader( // "<event xmlns='http://jabber.org/protocol/pubsub#event'>" + // "<items node='testNode'>" + // "<item id='testid1' />" + // "</items></event>"); // 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<Item> itemQ = new ArrayBlockingQueue<Item>(1); // // setupListener(itemQ); // Message itemMsg = getMessage("<item id='testid1' node='testNode'>"); // connection.addMessage(itemMsg); // // Item basicItem = itemQ.poll(2, TimeUnit.SECONDS); // // assertNotNull(basicItem); // assertEquals("testid1", basicItem.getId()); // assertEquals("testNode", basicItem.getNode()); // } }