Skip to content

Commit bc4d053

Browse files
committed
Add tests for XmlModelHelpers.getFieldsForXml
1 parent d74842f commit bc4d053

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package org.codehaus.modello.plugins.xml;
2+
3+
import static org.hamcrest.CoreMatchers.is;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import java.util.List;
7+
8+
import org.codehaus.modello.model.Model;
9+
import org.codehaus.modello.model.ModelClass;
10+
import org.codehaus.modello.model.ModelField;
11+
import org.codehaus.modello.model.Version;
12+
import org.codehaus.modello.plugins.xml.metadata.XmlFieldMetadata;
13+
import org.junit.Test;
14+
15+
public class XmlModelHelpersTest
16+
{
17+
@Test
18+
public void getFieldsForXml_defaultOrder()
19+
{
20+
Model model = new Model();
21+
22+
ModelClass entityClass = new ModelClass( model, "Entity" );
23+
ModelField id = new ModelField( new ModelClass( null, "String" ), "id" );
24+
id.addMetadata( new XmlFieldMetadata() );
25+
entityClass.addField( id );
26+
model.addClass( entityClass );
27+
28+
ModelClass vehicleClass = new ModelClass( model, "Vehicle" );
29+
vehicleClass.setSuperClass( "Entity" );
30+
ModelField brand = new ModelField( new ModelClass( null, "String" ), "brand" );
31+
XmlFieldMetadata brandMetadata = new XmlFieldMetadata();
32+
brandMetadata.setInsertParentFieldsUpTo( "id" );
33+
brand.addMetadata( brandMetadata );
34+
vehicleClass.addField( brand );
35+
model.addClass( vehicleClass );
36+
37+
ModelClass carClass = new ModelClass( model, "Car" );
38+
carClass.setSuperClass( "Vehicle" );
39+
ModelField modelName = new ModelField( new ModelClass( null, "String" ), "modelName" );
40+
XmlFieldMetadata modeNameMetaData = new XmlFieldMetadata();
41+
modeNameMetaData.setInsertParentFieldsUpTo( "brand" );
42+
modelName.addMetadata( modeNameMetaData );
43+
44+
carClass.addField( modelName );
45+
model.addClass( carClass );
46+
47+
List<ModelField> orderedFields = XmlModelHelpers.getFieldsForXml( carClass, new Version("0") );
48+
// unexpected order...
49+
assertThat( orderedFields.get( 2 ).getName(), is( "modelName" ) );
50+
assertThat( orderedFields.get( 1 ).getName(), is( "brand" ) );
51+
assertThat( orderedFields.get( 0 ).getName(), is( "id" ) );
52+
}
53+
54+
@Test
55+
public void getFieldsForXml_insertParentFieldsUpTo()
56+
{
57+
Model model = new Model();
58+
59+
ModelClass entityClass = new ModelClass( model, "Entity" );
60+
ModelField id = new ModelField( new ModelClass( null, "String" ), "id" );
61+
id.addMetadata( new XmlFieldMetadata() );
62+
entityClass.addField( id );
63+
model.addClass( entityClass );
64+
65+
ModelClass vehicleClass = new ModelClass( model, "Vehicle" );
66+
vehicleClass.setSuperClass( "Entity" );
67+
ModelField brand = new ModelField( new ModelClass( null, "String" ), "brand" );
68+
XmlFieldMetadata brandMetadata = new XmlFieldMetadata();
69+
brandMetadata.setInsertParentFieldsUpTo( "id" );
70+
brand.addMetadata( brandMetadata );
71+
vehicleClass.addField( brand );
72+
model.addClass( vehicleClass );
73+
74+
ModelClass carClass = new ModelClass( model, "Car" );
75+
carClass.setSuperClass( "Vehicle" );
76+
ModelField modelName = new ModelField( new ModelClass( null, "String" ), "modelName" );
77+
XmlFieldMetadata modeNameMetaData = new XmlFieldMetadata();
78+
modeNameMetaData.setInsertParentFieldsUpTo( "brand" );
79+
modelName.addMetadata( modeNameMetaData );
80+
81+
carClass.addField( modelName );
82+
model.addClass( carClass );
83+
84+
List<ModelField> orderedFields = XmlModelHelpers.getFieldsForXml( carClass, new Version("0") );
85+
assertThat( orderedFields.get( 0 ).getName(), is( "id" ) );
86+
assertThat( orderedFields.get( 1 ).getName(), is( "brand" ) );
87+
assertThat( orderedFields.get( 2 ).getName(), is( "modelName" ) );
88+
}
89+
}

0 commit comments

Comments
 (0)