package org.odata4j.test.unit.issues; import static org.junit.Assert.assertTrue; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.odata4j.edm.EdmDataServices; import org.odata4j.edm.EdmEntityType; import org.odata4j.edm.EdmProperty; import org.odata4j.edm.EdmSchema; import org.odata4j.edm.EdmSimpleType; import org.odata4j.format.xml.EdmxFormatWriter; // http://code.google.com/p/odata4j/issues/detail?id=177 public class Issue177Test { @Test public void testPrecisionAndScale() { // build simplest edm containing one decimal property EdmProperty.Builder edmPropertyBuilder = EdmProperty.newBuilder("DecimalProperty").setType(EdmSimpleType.DECIMAL).setPrecision(2).setScale(10); List<EdmProperty.Builder> builderProperties = new ArrayList<EdmProperty.Builder>(); builderProperties.add(edmPropertyBuilder); List<String> keys = new ArrayList<String>(); keys.add("DecimalProperty"); EdmEntityType.Builder entityTypeBuilder = EdmEntityType.newBuilder().setName("TypeName"); entityTypeBuilder.addProperties(builderProperties); entityTypeBuilder.addKeys(keys); ArrayList<EdmEntityType.Builder> builderEntityTypes = new ArrayList<EdmEntityType.Builder>(); builderEntityTypes.add(entityTypeBuilder); EdmSchema.Builder edmSchemaBuilder = EdmSchema.newBuilder().setNamespace("Namespace"); edmSchemaBuilder.addEntityTypes(builderEntityTypes); EdmDataServices.Builder edmDataServiceBuilder = EdmDataServices.newBuilder(); edmDataServiceBuilder.addSchemas(edmSchemaBuilder); // print xml StringWriter sw = new StringWriter(); EdmxFormatWriter.write(edmDataServiceBuilder.build(), sw); String edmAsString = sw.toString(); // check it assertTrue(edmAsString.contains("<Property Name=\"DecimalProperty\" Type=\"Edm.Decimal\" Nullable=\"false\" Precision=\"2\" Scale=\"10\"></Property>")); } }