[DEV] add object test
This commit is contained in:
parent
a6c90e5515
commit
e5db63a06b
400
test/src/test/atriasoft/exml/ExmlTestIntrospectionObject.java
Normal file
400
test/src/test/atriasoft/exml/ExmlTestIntrospectionObject.java
Normal file
@ -0,0 +1,400 @@
|
||||
/** @file
|
||||
* @author Edouard DUPIN
|
||||
* @copyright 2021, Edouard DUPIN, all right reserved
|
||||
* @license MPL v2.0 (see license file)
|
||||
*/
|
||||
package test.atriasoft.exml;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.atriasoft.exml.Exml;
|
||||
import org.atriasoft.exml.annotation.XmlAttribute;
|
||||
import org.atriasoft.exml.annotation.XmlList;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class ExmlTestIntrospectionObject {
|
||||
static final String NODE_NAME = "elem";
|
||||
@BeforeAll
|
||||
public static void beforeClass() {
|
||||
Log.warning("================================================================");
|
||||
}
|
||||
|
||||
public class SimpleObject {
|
||||
@XmlAttribute
|
||||
public int value1;
|
||||
public float value2;
|
||||
}
|
||||
|
||||
public class TestNodeObject {
|
||||
public SimpleObject valueA;
|
||||
public SimpleObject valueB;
|
||||
}
|
||||
@Test
|
||||
public void testModelNodeObject() {
|
||||
TestNodeObject elem = new TestNodeObject();
|
||||
elem.valueA = new SimpleObject();
|
||||
elem.valueA.value1 = 55;
|
||||
elem.valueA.value2 = 12568.0f;
|
||||
elem.valueB = new SimpleObject();
|
||||
elem.valueB.value1 = -55;
|
||||
elem.valueB.value2 = -12568.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <valueA value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </valueA>\n"
|
||||
+ " <valueB value1=\"-55\">\n"
|
||||
+ " <value2>-12568.0</value2>\n"
|
||||
+ " </valueB>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestNodeObject root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestNodeObject.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(55, root.valueA.value1);
|
||||
Assertions.assertEquals(12568.0f, root.valueA.value2);
|
||||
Assertions.assertEquals(-55, root.valueB.value1);
|
||||
Assertions.assertEquals(-12568.0f, root.valueB.value2);
|
||||
}
|
||||
|
||||
public class TestArrayNodeObject {
|
||||
public SimpleObject[] values;
|
||||
}
|
||||
@Test
|
||||
public void testModelArrayNodeObject() {
|
||||
TestArrayNodeObject elem = new TestArrayNodeObject();
|
||||
elem.values = new SimpleObject[] {new SimpleObject(), new SimpleObject(), new SimpleObject()};
|
||||
elem.values[0].value1 = 55;
|
||||
elem.values[0].value2 = 12568.0f;
|
||||
elem.values[1].value1 = 77;
|
||||
elem.values[1].value2 = 15.0f;
|
||||
elem.values[2].value1 = 152654;
|
||||
elem.values[2].value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestArrayNodeObject root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestArrayNodeObject.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.values.length);
|
||||
Assertions.assertEquals(55, root.values[0].value1);
|
||||
Assertions.assertEquals(12568.0f, root.values[0].value2);
|
||||
Assertions.assertEquals(77, root.values[1].value1);
|
||||
Assertions.assertEquals(15.0f, root.values[1].value2);
|
||||
Assertions.assertEquals(152654, root.values[2].value1);
|
||||
Assertions.assertEquals(-75.0f, root.values[2].value2);
|
||||
}
|
||||
|
||||
public class TestListNodeObject {
|
||||
public List<SimpleObject> values;
|
||||
}
|
||||
@Test
|
||||
public void testModelListNodeObject() {
|
||||
TestListNodeObject elem = new TestListNodeObject();
|
||||
elem.values = List.of(new SimpleObject(), new SimpleObject(), new SimpleObject());
|
||||
elem.values.get(0).value1 = 55;
|
||||
elem.values.get(0).value2 = 12568.0f;
|
||||
elem.values.get(1).value1 = 77;
|
||||
elem.values.get(1).value2 = 15.0f;
|
||||
elem.values.get(2).value1 = 152654;
|
||||
elem.values.get(2).value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestListNodeObject root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestListNodeObject.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.values.size());
|
||||
Assertions.assertEquals(55, root.values.get(0).value1);
|
||||
Assertions.assertEquals(12568.0f, root.values.get(0).value2);
|
||||
Assertions.assertEquals(77, root.values.get(1).value1);
|
||||
Assertions.assertEquals(15.0f, root.values.get(1).value2);
|
||||
Assertions.assertEquals(152654, root.values.get(2).value1);
|
||||
Assertions.assertEquals(-75.0f, root.values.get(2).value2);
|
||||
}
|
||||
|
||||
|
||||
public class TestNodeObjectFunc {
|
||||
private SimpleObject valueA;
|
||||
private SimpleObject valueB;
|
||||
public SimpleObject getValueA() {
|
||||
return this.valueA;
|
||||
}
|
||||
public void setValueA(final SimpleObject valueA) {
|
||||
this.valueA = valueA;
|
||||
}
|
||||
public SimpleObject getValueB() {
|
||||
return this.valueB;
|
||||
}
|
||||
public void setValueB(final SimpleObject valueB) {
|
||||
this.valueB = valueB;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testModelNodeObjectFunc() {
|
||||
TestNodeObjectFunc elem = new TestNodeObjectFunc();
|
||||
elem.setValueA(new SimpleObject());
|
||||
elem.getValueA().value1 = 4564;
|
||||
elem.getValueA().value2 = 152.0f;
|
||||
elem.setValueB(new SimpleObject());
|
||||
elem.getValueB().value1 = 454564;
|
||||
elem.getValueB().value2 = 85422.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <valueA value1=\"4564\">\n"
|
||||
+ " <value2>152.0</value2>\n"
|
||||
+ " </valueA>\n"
|
||||
+ " <valueB value1=\"454564\">\n"
|
||||
+ " <value2>85422.0</value2>\n"
|
||||
+ " </valueB>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestNodeObjectFunc root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestNodeObjectFunc.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(4564, root.getValueA().value1);
|
||||
Assertions.assertEquals(152.0f, root.getValueA().value2);
|
||||
Assertions.assertEquals(454564, root.getValueB().value1);
|
||||
Assertions.assertEquals(85422.0f, root.getValueB().value2);
|
||||
}
|
||||
|
||||
public class TestArrayNodeObjectFunc {
|
||||
private SimpleObject[] values;
|
||||
|
||||
public SimpleObject[] getValues() {
|
||||
return this.values;
|
||||
}
|
||||
|
||||
public void setValues(final SimpleObject[] values) {
|
||||
this.values = values;
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void testModelArrayNodeObjectFunc() {
|
||||
TestArrayNodeObjectFunc elem = new TestArrayNodeObjectFunc();
|
||||
elem.setValues(new SimpleObject[] {new SimpleObject(), new SimpleObject(), new SimpleObject()});
|
||||
elem.getValues()[0].value1 = 55;
|
||||
elem.getValues()[0].value2 = 12568.0f;
|
||||
elem.getValues()[1].value1 = 77;
|
||||
elem.getValues()[1].value2 = 15.0f;
|
||||
elem.getValues()[2].value1 = 152654;
|
||||
elem.getValues()[2].value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestArrayNodeObjectFunc root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestArrayNodeObjectFunc.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.getValues().length);
|
||||
Assertions.assertEquals(55, root.getValues()[0].value1);
|
||||
Assertions.assertEquals(12568.0f, root.getValues()[0].value2);
|
||||
Assertions.assertEquals(77, root.getValues()[1].value1);
|
||||
Assertions.assertEquals(15.0f, root.getValues()[1].value2);
|
||||
Assertions.assertEquals(152654, root.getValues()[2].value1);
|
||||
Assertions.assertEquals(-75.0f, root.getValues()[2].value2);
|
||||
}
|
||||
|
||||
// Note this is set in static to test an other part of code...
|
||||
public static class TestListNodeObjectFunc {
|
||||
private List<SimpleObject> values;
|
||||
|
||||
public List<SimpleObject> getValues() {
|
||||
return this.values;
|
||||
}
|
||||
|
||||
public void setValues(final List<SimpleObject> values) {
|
||||
this.values = values;
|
||||
}
|
||||
}
|
||||
@Test
|
||||
public void testModelListNodeObjectFunc() {
|
||||
TestListNodeObjectFunc elem = new TestListNodeObjectFunc();
|
||||
elem.values = List.of(new SimpleObject(), new SimpleObject(), new SimpleObject());
|
||||
elem.getValues().get(0).value1 = 55;
|
||||
elem.getValues().get(0).value2 = 12568.0f;
|
||||
elem.getValues().get(1).value1 = 77;
|
||||
elem.getValues().get(1).value2 = 15.0f;
|
||||
elem.getValues().get(2).value1 = 152654;
|
||||
elem.getValues().get(2).value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ " <values value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestListNodeObjectFunc root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestListNodeObjectFunc.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.getValues().size());
|
||||
Assertions.assertEquals(55, root.getValues().get(0).value1);
|
||||
Assertions.assertEquals(12568.0f, root.getValues().get(0).value2);
|
||||
Assertions.assertEquals(77, root.getValues().get(1).value1);
|
||||
Assertions.assertEquals(15.0f, root.getValues().get(1).value2);
|
||||
Assertions.assertEquals(152654, root.getValues().get(2).value1);
|
||||
Assertions.assertEquals(-75.0f, root.getValues().get(2).value2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public class TestArrayNodeStructuredObjectFunc {
|
||||
private SimpleObject[] values;
|
||||
|
||||
@XmlList(value="elem")
|
||||
public SimpleObject[] getValues() {
|
||||
return this.values;
|
||||
}
|
||||
|
||||
public void setValues(final SimpleObject[] values) {
|
||||
this.values = values;
|
||||
}
|
||||
|
||||
}
|
||||
@Test
|
||||
public void testModelArrayNodeStructuredObjectFunc() {
|
||||
TestArrayNodeStructuredObjectFunc elem = new TestArrayNodeStructuredObjectFunc();
|
||||
elem.setValues(new SimpleObject[] {new SimpleObject(), new SimpleObject(), new SimpleObject()});
|
||||
elem.getValues()[0].value1 = 55;
|
||||
elem.getValues()[0].value2 = 12568.0f;
|
||||
elem.getValues()[1].value1 = 77;
|
||||
elem.getValues()[1].value2 = 15.0f;
|
||||
elem.getValues()[2].value1 = 152654;
|
||||
elem.getValues()[2].value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values>\n"
|
||||
+ " <elem value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " <elem value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " <elem value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestArrayNodeStructuredObjectFunc root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestArrayNodeStructuredObjectFunc.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.getValues().length);
|
||||
Assertions.assertEquals(55, root.getValues()[0].value1);
|
||||
Assertions.assertEquals(12568.0f, root.getValues()[0].value2);
|
||||
Assertions.assertEquals(77, root.getValues()[1].value1);
|
||||
Assertions.assertEquals(15.0f, root.getValues()[1].value2);
|
||||
Assertions.assertEquals(152654, root.getValues()[2].value1);
|
||||
Assertions.assertEquals(-75.0f, root.getValues()[2].value2);
|
||||
}
|
||||
|
||||
// Note this is set in static to test an other part of code...
|
||||
public static class TestListNodeStructuredObjectFunc {
|
||||
private List<SimpleObject> values;
|
||||
|
||||
@XmlList(value="elem")
|
||||
public List<SimpleObject> getValues() {
|
||||
return this.values;
|
||||
}
|
||||
|
||||
public void setValues(final List<SimpleObject> values) {
|
||||
this.values = values;
|
||||
}
|
||||
}
|
||||
@Test
|
||||
public void testModelListNodeStructuredObjectFunc() {
|
||||
TestListNodeStructuredObjectFunc elem = new TestListNodeStructuredObjectFunc();
|
||||
elem.values = List.of(new SimpleObject(), new SimpleObject(), new SimpleObject());
|
||||
elem.getValues().get(0).value1 = 55;
|
||||
elem.getValues().get(0).value2 = 12568.0f;
|
||||
elem.getValues().get(1).value1 = 77;
|
||||
elem.getValues().get(1).value2 = 15.0f;
|
||||
elem.getValues().get(2).value1 = 152654;
|
||||
elem.getValues().get(2).value2 = -75.0f;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Assertions.assertDoesNotThrow(() -> Exml.generate(elem, ExmlTestIntrospectionObject.NODE_NAME, builder));
|
||||
String dataTest = builder.toString();
|
||||
Log.warning("data generated: " + builder.toString());
|
||||
Assertions.assertEquals("<elem>\n"
|
||||
+ " <values>\n"
|
||||
+ " <elem value1=\"55\">\n"
|
||||
+ " <value2>12568.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " <elem value1=\"77\">\n"
|
||||
+ " <value2>15.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " <elem value1=\"152654\">\n"
|
||||
+ " <value2>-75.0</value2>\n"
|
||||
+ " </elem>\n"
|
||||
+ " </values>\n"
|
||||
+ "</elem>", dataTest);
|
||||
|
||||
final TestListNodeStructuredObjectFunc root = Assertions.assertDoesNotThrow(() -> Exml.parseOne(dataTest, TestListNodeStructuredObjectFunc.class, ExmlTestIntrospectionObject.NODE_NAME));
|
||||
Assertions.assertEquals(3, root.getValues().size());
|
||||
Assertions.assertEquals(55, root.getValues().get(0).value1);
|
||||
Assertions.assertEquals(12568.0f, root.getValues().get(0).value2);
|
||||
Assertions.assertEquals(77, root.getValues().get(1).value1);
|
||||
Assertions.assertEquals(15.0f, root.getValues().get(1).value2);
|
||||
Assertions.assertEquals(152654, root.getValues().get(2).value1);
|
||||
Assertions.assertEquals(-75.0f, root.getValues().get(2).value2);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user