/*
* 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));
}
}