
org.droidparts.test.testcase.serialize.XMLTestCase Maven / Gradle / Ivy
The newest version!
/**
* Copyright 2016 Alex Yanchenko
*
* 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.droidparts.test.testcase.serialize;
import java.util.ArrayList;
import org.droidparts.model.Model;
import org.droidparts.persist.serializer.SerializerException;
import org.droidparts.persist.serializer.XMLSerializer;
import org.droidparts.test.R;
import org.droidparts.test.model.Album;
import org.droidparts.test.model.Album2;
import org.droidparts.test.model.AlbumFail;
import org.droidparts.test.model.Collections;
import org.droidparts.util.IOUtils;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import android.test.AndroidTestCase;
import android.test.AssertionFailedError;
public class XMLTestCase extends AndroidTestCase {
public void testAlbums() throws Exception {
Document albumsDoc = getXMLDocument(R.raw.albums_xml);
NodeList nl = albumsDoc.getElementsByTagName("album");
XMLSerializer serializer = makeSerializer(Album.class);
ArrayList albums = serializer.deserializeAll(nl);
assertEquals(2, albums.size());
assertEquals("Diamond", albums.get(0).name);
assertEquals(2009, albums.get(1).year);
}
public void testAlbum2() throws Exception {
Document albumDoc = getXMLDocument(R.raw.album2);
XMLSerializer serializer = makeSerializer(Album2.class);
Album2 a2 = serializer.deserialize(albumDoc);
assertEquals("Iris", a2.name);
assertEquals(2009, a2.year);
assertEquals(2, a2.albumArr.length);
assertEquals(2, a2.albumList.size());
assertEquals(3, a2.ints.length);
assertEquals(3, a2.integers.size());
assertEquals(5, a2.ints[1]);
assertEquals(100500, (int) a2.integers.get(2));
assertEquals(a2.integers.size(), a2.integersHinted.size());
assertTrue(a2.integersHintedWrong.isEmpty());
}
public void testFail() throws Exception {
Document albumDoc = getXMLDocument(R.raw.album2);
XMLSerializer serializer = makeSerializer(AlbumFail.class);
try {
serializer.deserialize(albumDoc);
assertTrue(false);
} catch (Exception e) {
assertTrue(e instanceof SerializerException);
}
}
//
public void testCollectionsFail() throws Exception {
try {
Document doc = getXMLDocument(R.raw.albums_partial_xml);
XMLSerializer ser = makeSerializer(Collections.class);
ser.deserialize(doc);
} catch (Exception e) {
assertTrue(e instanceof SerializerException);
return;
}
throw new AssertionFailedError();
}
//
private Document getXMLDocument(int resId) throws Exception {
String xml = IOUtils.readToString(getContext().getResources().openRawResource(resId));
return XMLSerializer.parseDocument(xml);
}
protected final XMLSerializer makeSerializer(Class cls) {
return new XMLSerializer(cls, getContext());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy