package org.rapidoid.data; /* * #%L * rapidoid-commons * %% * Copyright (C) 2014 - 2017 Nikolche Mihajlovski and contributors * %% * 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. * #L% */ import org.junit.Test; import org.rapidoid.data.Parse.DataFormat; import org.rapidoid.test.TestCommons; /** * @author Nikolche Mihajlovski * @since 4.4.0 */ public class ParseTest extends TestCommons { @Test public void testXMLParse() { String xml = XML.stringify(new Person("abc", 123)); System.out.println(xml); Person p = Parse.data(xml, Person.class); eq(p.getName(), "abc"); eq(p.getAge(), 123); } @Test public void testJSONParse() { String json = JSON.stringify(new Person("abc", 123)); System.out.println(json); Person p = Parse.data(json, Person.class); eq(p.getName(), "abc"); eq(p.getAge(), 123); isNull(Parse.data("null", Person.class)); eq(Parse.data("3", Integer.class).intValue(), 3); isTrue(Parse.data("true", Boolean.class).booleanValue()); isFalse(Parse.data("false", Boolean.class).booleanValue()); eq(Parse.data("\"123\"", String.class), "123"); } @Test public void testYAMLParse() { String yaml = YAML.stringify(new Person("abc", 123)); System.out.println(yaml); Person p = Parse.data(yaml, Person.class); eq(p.getName(), "abc"); eq(p.getAge(), 123); } @Test public void testDataFormatAutoDetect() { eq(Parse.detectDataFormat("---\n".getBytes())[0], DataFormat.YAML); eq(Parse.detectDataFormat("".getBytes())[0], DataFormat.YAML); eq(Parse.detectDataFormat("<abc>".getBytes())[0], DataFormat.XML); eq(Parse.detectDataFormat("-1".getBytes())[0], DataFormat.JSON); eq(Parse.detectDataFormat("-12345".getBytes())[0], DataFormat.JSON); eq(Parse.detectDataFormat("null".getBytes())[0], DataFormat.JSON); eq(Parse.detectDataFormat("\"fff\"".getBytes())[0], DataFormat.JSON); } }