/*
* Copyright (c) 2012-2014 Isode Limited, London, England.
* All rights reserved.
*/
/*
* Copyright (c) 2010 Remko Tronçon
* All rights reserved.
*/
package com.isode.stroke.serializer.payloadserializers;
import static org.junit.Assert.assertEquals;
import org.junit.BeforeClass;
import org.junit.Test;
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;
public class FormSerializerTest {
@BeforeClass
public static void init() throws Exception {
}
@Test
public void testSerializeFormInformation() {
FormSerializer testling = new FormSerializer();
Form form = new Form(Type.FORM_TYPE);
form.setTitle("Bot Configuration");
form
.setInstructions("Hello!\nFill out this form to configure your new bot!");
assertEquals(
""
+ "Bot Configuration"
+ "Hello!"
+ "Fill out this form to configure your new bot!"
+ "", testling.serialize(form));
}
@Test
public void testSerializeFields() {
FormSerializer testling = new FormSerializer();
Form form = new Form(Type.FORM_TYPE);
FormField field = new FormField(FormField.Type.UNKNOWN_TYPE);
field.setName("field name");
field.setLabel("description");
field.addValue("someText");
form.addReportedField(field);
field = new FormField(FormField.Type.TEXT_MULTI_TYPE);
field.setLabel("text-multi-field");
field.setTextMultiValue("This is some text\nthis is some more");
form.addField(field);
FormItem item = new FormItem();
field = new FormField(FormField.Type.UNKNOWN_TYPE);
field.setName("itemField");
field.addValue("itemValue");
item.addItemField(field);
form.addItem(item);
field = new FormField(FormField.Type.HIDDEN_TYPE, "jabber:bot");
field.setName("FORM_TYPE");
form.addField(field);
form.addField(new FormField(FormField.Type.FIXED_TYPE, "Section 1: Bot Info"));
field = new FormField(FormField.Type.TEXT_SINGLE_TYPE);
field.setName("botname");
field.setLabel("The name of your bot");
form.addField(field);
field = new FormField(FormField.Type.TEXT_MULTI_TYPE);
field.setTextMultiValue("This is a bot.\nA quite good one actually");
field.setName("description");
field.setLabel("Helpful description of your bot");
form.addField(field);
field = new FormField(FormField.Type.BOOLEAN_TYPE);
field.setBoolValue(true);
field.setName("public");
field.setLabel("Public bot?");
field.setRequired(true);
form.addField(field);
field = new FormField(FormField.Type.TEXT_PRIVATE_TYPE);
field.setName("password");
field.setLabel("Password for special access");
form.addField(field);
field = new FormField(FormField.Type.LIST_MULTI_TYPE);
field.addValue("news");
field.addValue("search");
field.setName("features");
field.setLabel("What features will the bot support?");
field.addOption(new Option("Contests", "contests"));
field.addOption(new Option("News", "news"));
field.addOption(new Option("Polls", "polls"));
field.addOption(new Option("Reminders", "reminders"));
field.addOption(new Option("Search", "search"));
form.addField(field);
field = new FormField(FormField.Type.LIST_SINGLE_TYPE, "20");
field.setName("maxsubs");
field.setLabel("Maximum number of subscribers");
field.addOption(new Option("10", "10"));
field.addOption(new Option("20", "20"));
field.addOption(new Option("30", "30"));
field.addOption(new Option("50", "50"));
field.addOption(new Option("100", "100"));
field.addOption(new Option("", "none"));
form.addField(field);
String jid = "user@example.com";
field = new FormField(FormField.Type.JID_SINGLE_TYPE);
field.addValue(jid);
field.setName("jidSingle");
field.setLabel("jidSingleLabel");
field.setDescription("jidSingleDescription");
form.addField(field);
field = new FormField(FormField.Type.JID_MULTI_TYPE);
field.addValue("foo@bar.com");
field.addValue("baz@fum.org");
field.setName("invitelist");
field.setLabel("People to invite");
field.setDescription("Tell all your friends about your new bot!");
form.addField(field);
assertEquals(
""
+ ""
+ ""
+ "someText"
+ ""
+ ""
+ "- "
+ ""
+ "itemValue"
+ ""
+ "
"
+ ""
+ "This is some textthis is some more"
+ ""
+ ""
+ "jabber:bot"
+ ""
+ "Section 1: Bot Info"
+ ""
+ "This is a bot.A quite good one actually"
+ ""
+ ""
+ "1"
+ ""
+ ""
+ ""
+ "news"
+ "search"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ "20"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ "jidSingleDescription"
+ "user@example.com"
+ ""
+ ""
+ "Tell all your friends about your new bot!"
+ "foo@bar.com"
+ "baz@fum.org" + "" + "",
/*
+ "0"
+ "Fixed>"
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ "textPrivateVal"
+ ""
+ ""
+ ""
+ ""
+ ""
*/
testling.serialize(form));
}
}