/* * Copyright (c) 2010-2013 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ /* * Copyright (c) 2015 Tarun Gupta. * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ package com.isode.stroke.serializer.payloadserializers; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.isode.stroke.serializer.payloadserializers.SearchPayloadSerializer; import com.isode.stroke.elements.SearchPayload; import com.isode.stroke.elements.Form; import com.isode.stroke.elements.Form.Type; import com.isode.stroke.elements.FormField; import com.isode.stroke.elements.FormField.Option; import com.isode.stroke.elements.FormItem; import com.isode.stroke.elements.FormSection; import com.isode.stroke.elements.FormText; import com.isode.stroke.elements.FormPage; import com.isode.stroke.elements.FormReportedRef; import com.isode.stroke.jid.JID; import java.util.List; public class SearchPayloadSerializerTest { /** * Default Constructor. */ public SearchPayloadSerializerTest() { } @Test public void testSerialize_Request() { SearchPayloadSerializer testling = new SearchPayloadSerializer(); SearchPayload payload = new SearchPayload(); payload.setFirst("Juliet"); payload.setLast("Capulet"); assertEquals("" + "Juliet" + "Capulet" + "", testling.serialize(payload)); } @Test public void testSerialize_Items() { SearchPayloadSerializer testling = new SearchPayloadSerializer(); SearchPayload payload = new SearchPayload(); SearchPayload.Item item1 = new SearchPayload.Item(); item1.jid = new JID("juliet@capulet.com"); item1.first = "Juliet"; item1.last = "Capulet"; item1.nick = "JuliC"; item1.email = "juliet@shakespeare.lit"; payload.addItem(item1); SearchPayload.Item item2 = new SearchPayload.Item(); item2.jid = new JID("tybalt@shakespeare.lit"); item2.first = "Tybalt"; item2.last = "Capulet"; item2.nick = "ty"; item2.email = "tybalt@shakespeare.lit"; payload.addItem(item2); assertEquals("" + "" + "Juliet" + "Capulet" + "JuliC" + "juliet@shakespeare.lit" + "" + "" + "Tybalt" + "Capulet" + "ty" + "tybalt@shakespeare.lit" + "" + "", testling.serialize(payload)); } @Test public void testSerialize_DataForm() { SearchPayloadSerializer testling = new SearchPayloadSerializer(); SearchPayload payload = new SearchPayload(); Form form = new Form(Form.Type.RESULT_TYPE); FormField field = new FormField(FormField.Type.HIDDEN_TYPE, "jabber:iq:search"); field.setName("FORM_TYPE"); form.addField(field); // reported fields field = new FormField(FormField.Type.TEXT_SINGLE_TYPE); field.setName("first"); field.setLabel("Given Name"); form.addReportedField(field); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE); field.setName("last"); field.setLabel("Family Name"); form.addReportedField(field); field = new FormField(FormField.Type.JID_SINGLE_TYPE); field.setName("jid"); field.setLabel("Jabber ID"); form.addReportedField(field); field = new FormField(FormField.Type.LIST_SINGLE_TYPE); field.setName("x-gender"); field.setLabel("Gender"); form.addReportedField(field); FormItem firstItem = new FormItem(); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "Benvolio"); field.setName("first"); firstItem.addItemField(field); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "Montague"); field.setName("last"); firstItem.addItemField(field); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "benvolio@montague.net"); field.setName("jid"); firstItem.addItemField(field); field = new FormField(FormField.Type.LIST_SINGLE_TYPE, "male"); field.setName("x-gender"); firstItem.addItemField(field); FormItem secondItem = new FormItem(); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "Romeo"); field.setName("first"); secondItem.addItemField(field); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "Montague"); field.setName("last"); secondItem.addItemField(field); field = new FormField(FormField.Type.TEXT_SINGLE_TYPE, "romeo@montague.net"); field.setName("jid"); secondItem.addItemField(field); field = new FormField(FormField.Type.LIST_SINGLE_TYPE, "male"); field.setName("x-gender"); secondItem.addItemField(field); form.addItem(firstItem); form.addItem(secondItem); payload.setForm(form); assertEquals("" + "" + "" + "jabber:iq:search" + "" + "" + "" + "" + "" + "" + "" + "" + "Benvolio" + "Montague" + "benvolio@montague.net" + "male" + "" + "" + "Romeo" + "Montague" + "romeo@montague.net" + "male" + "" + "" + "", testling.serialize(payload)); } }