@Test public void testFunctionReturnPrimitiveCollection() throws Exception { CsdlReturnType returnType = new CsdlReturnType(); returnType.setType("Edm.String"); returnType.setCollection(true); MetadataFactory mf = functionMetadata("invoke", returnType, null); Procedure p = mf.getSchema().getProcedure("invoke"); assertNotNull(p); assertEquals(3, p.getParameters().size()); assertNull(p.getResultSet()); assertNotNull(getReturnParameter(p)); ProcedureParameter pp = getReturnParameter(p); assertEquals("string[]", pp.getRuntimeType()); ODataType type = ODataType.valueOf(p.getProperty(ODataMetadataProcessor.ODATA_TYPE, false)); assertEquals(ODataType.FUNCTION, type); }
@Test public void testFunctionReturnComplexCollection() throws Exception { CsdlComplexType complex = complexType("Address"); CsdlReturnType returnType = new CsdlReturnType(); returnType.setType("namespace.Address"); returnType.setCollection(true); MetadataFactory mf = functionMetadata("invoke", returnType, complex); Procedure p = mf.getSchema().getProcedure("invoke"); assertNotNull(p); assertEquals(2, p.getParameters().size()); assertNotNull(p.getResultSet()); assertNull(getReturnParameter(p)); ColumnSet<Procedure> table = p.getResultSet(); ODataType type = ODataType.valueOf(p.getProperty(ODataMetadataProcessor.ODATA_TYPE, false)); assertEquals(ODataType.FUNCTION, type); type = ODataType.valueOf(table.getProperty(ODataMetadataProcessor.ODATA_TYPE, false)); assertEquals(ODataType.COMPLEX_COLLECTION, type); }