/*
* Rapid Beans Framework: RapidBeanDeserializerTest.java
*
* Copyright Martin Bluemel, 2008
*
* created 25.02.2008
*/
package org.rapidbeans.core.common;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Collection;
import junit.framework.TestCase;
import org.rapidbeans.core.basic.RapidBean;
import org.rapidbeans.core.type.TypeRapidBean;
import org.rapidbeans.datasource.Document;
import org.rapidbeans.presentation.config.ConfigApplication;
import org.rapidbeans.presentation.config.ConfigMainWindow;
import org.rapidbeans.presentation.config.ConfigMenubar;
import org.rapidbeans.presentation.config.ConfigSubmenu;
import org.rapidbeans.test.codegen.Person;
/**
* Unit test for class RapidBeanDeserializer.
*
* @author Martin Bluemel
*/
public class RapidBeanDeserializerTest extends TestCase {
/**
* Test method for {@link org.rapidbeans.core.common.RapidBeanDeserializer#loadBean(org.rapidbeans.core.type.TypeRapidBean, java.net.URL)} . (type = null).
*
* @throws IOException
*/
public void testLoadBeanGenericStyle() throws IOException {
File file1 = new File("../org.rapidbeans/testdata/deserialization/AppGenericStyle.xml");
Document doc = new Document("testdoc", file1);
ConfigApplication cfg = (ConfigApplication) doc.getRoot();
assertEquals("org.rapidbeans.presentation.TestClient", cfg.getApplicationclass());
assertNotNull((ConfigMainWindow) doc.findBeanByQuery("/mainwindow"));
assertNotNull((ConfigMenubar) doc.findBeanByQuery("/mainwindow/menubar"));
assertEquals("test",
((ConfigSubmenu) doc.findBeanByQuery("/mainwindow/menubar/menus[name = 'test']")).getName());
Collection<RapidBean> menuItems = doc
.findBeansByQuery("org.rapidbeans.presentation.config.ConfigMenuItem[name = 'test222']");
assertEquals(1, menuItems.size());
}
/**
* Test method for {@link org.rapidbeans.core.common.RapidBeanDeserializer#loadBean(org.rapidbeans.core.type.TypeRapidBean, java.net.URL)} . (type = null).
*
* @throws IOException
*/
public void testLoadBeanConcreteStyle() throws IOException {
Document doc = new Document("testdoc", TypeRapidBean.forName(ConfigApplication.class.getName()), new File(
"../org.rapidbeans/testdata/deserialization/AppConcreteStyle.xml"));
ConfigApplication cfg = (ConfigApplication) doc.getRoot();
assertEquals("org.rapidbeans.presentation.TestClient", cfg.getApplicationclass());
assertNotNull((ConfigMainWindow) doc.findBeanByQuery("/mainwindow"));
assertNotNull((ConfigMenubar) doc.findBeanByQuery("/mainwindow/menubar"));
assertEquals("test",
((ConfigSubmenu) doc.findBeanByQuery("/mainwindow/menubar/menus[name = 'test']")).getName());
Collection<RapidBean> menuItems = doc
.findBeansByQuery("org.rapidbeans.presentation.config.ConfigMenuItem[name = 'test222']");
assertEquals(1, menuItems.size());
}
/**
* Test method for {@link org.rapidbeans.core.common.RapidBeanDeserializer#loadBean(org.rapidbeans.core.type.TypeRapidBean, java.net.URL)} . (type = null).
*
* @throws IOException
*/
public void testLoadAppNamespaceStyle() throws IOException {
File file1 = new File("../org.rapidbeans/testdata/deserialization/AppNamespaceStyle.xml");
Document doc = new Document("testdoc", file1);
ConfigApplication cfg = (ConfigApplication) doc.getRoot();
assertEquals("org.rapidbeans.presentation.TestClient", cfg.getApplicationclass());
assertNotNull((ConfigMainWindow) doc.findBeanByQuery("/mainwindow"));
assertNotNull((ConfigMenubar) doc.findBeanByQuery("/mainwindow/menubar"));
assertEquals("test",
((ConfigSubmenu) doc.findBeanByQuery("/mainwindow/menubar/menus[name = 'test']")).getName());
Collection<RapidBean> menuItems = doc
.findBeansByQuery("org.rapidbeans.presentation.config.ConfigMenuItem[name = 'test222']");
assertEquals(1, menuItems.size());
}
/**
* Test the default serialization for multiline strings as attributes.
*/
public void testDeserializeStringMultilineAttribute() throws MalformedURLException {
File testfile = new File("testdata/serialization/testSerMultiAttr.xml");
Document doc = new Document(testfile);
Person p1 = (Person) doc.findBean("org.rapidbeans.test.codegen.Person", "Bluemel_Martin_19641014");
assertEquals("xxx\nyyy", p1.getComment());
}
/**
* Test the default serialization for multiline strings as attributes.
*/
public void testSerializeStringMultilineElement() throws MalformedURLException {
File testfile = new File("testdata/serialization/testSerMultiElem.xml");
Document doc = new Document(testfile);
Person p1 = (Person) doc.findBean("org.rapidbeans.test.codegen.Person", "Bluemel_Martin_19641014");
assertEquals("xxx\nyyy", p1.getComment2());
}
/**
* Test the default serialization for multiline strings as attributes.
*/
public void testSerializeStringMultilineElementWithDefinedMapping() throws MalformedURLException {
File testfile = new File("testdata/serialization/testSerMultiElemDefinedMapping.xml");
Document doc = new Document(testfile);
Person p1 = (Person) doc.findBean("org.rapidbeans.test.codegen.Person", "Bluemel_Martin_19641014");
assertEquals("xxx\nyyy", p1.getComment3());
}
}