blob: 8035f2b129f7d59af9c4764f1404e0f717c3b8ba [file] [log] [blame]
/*******************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
******************************************************************************/
package org.apache.olingo.odata2.jpa.processor.core.access.data;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmMapping;
import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.edm.EdmProperty;
import org.apache.olingo.odata2.api.edm.EdmStructuralType;
import org.apache.olingo.odata2.api.edm.EdmType;
import org.apache.olingo.odata2.api.edm.EdmTypeKind;
import org.apache.olingo.odata2.jpa.processor.api.exception.ODataJPARuntimeException;
import org.apache.olingo.odata2.jpa.processor.core.common.ODataJPATestConstants;
import org.apache.olingo.odata2.jpa.processor.core.model.JPAEdmMappingImpl;
import org.easymock.EasyMock;
import org.junit.Test;
public class JPAEntityParserTest {
/*
* TestCase - JPAResultParser is a singleton class Check if the same
* instance is returned when create method is called
*/
@Test
public void testCreate() {
JPAEntityParser resultParser1 = new JPAEntityParser();
JPAEntityParser resultParser2 = new JPAEntityParser();
if (resultParser1.equals(resultParser2)) {
fail();
}
}
@Test
public void testparse2EdmPropertyValueMap() {
JPAEntityParser resultParser = new JPAEntityParser();
Object jpaEntity = new demoItem("abc", 10);
EdmStructuralType structuralType = EasyMock.createMock(EdmStructuralType.class);
EdmProperty edmTyped = EasyMock.createMock(EdmProperty.class);
EdmType edmType = EasyMock.createMock(EdmType.class);
EdmProperty edmTyped01 = EasyMock.createMock(EdmProperty.class);
EdmType edmType01 = EasyMock.createMock(EdmType.class);
EdmMapping edmMapping = EasyMock.createMock(JPAEdmMappingImpl.class);
EdmMapping edmMapping01 = EasyMock.createMock(JPAEdmMappingImpl.class);
try {
EasyMock.expect(edmType.getKind()).andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.expect(edmTyped.getName()).andStubReturn("identifier");
EasyMock.replay(edmType);
EasyMock.expect(edmMapping.getInternalName()).andStubReturn("id");
EasyMock.expect(((JPAEdmMappingImpl) edmMapping).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(edmMapping);
EasyMock.expect(edmTyped.getType()).andStubReturn(edmType);
EasyMock.expect(edmTyped.getMapping()).andStubReturn(edmMapping);
EasyMock.replay(edmTyped);
EasyMock.expect(structuralType.getProperty("identifier")).andStubReturn(edmTyped);
EasyMock.expect(edmType01.getKind()).andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.expect(edmTyped01.getName()).andStubReturn("Value");
EasyMock.replay(edmType01);
EasyMock.expect(edmMapping01.getInternalName()).andStubReturn("value");
EasyMock.expect(((JPAEdmMappingImpl) edmMapping01).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(edmMapping01);
EasyMock.expect(edmTyped01.getType()).andStubReturn(edmType01);
EasyMock.expect(edmTyped01.getMapping()).andStubReturn(edmMapping01);
EasyMock.replay(edmTyped01);
EasyMock.expect(structuralType.getProperty("value")).andStubReturn(edmTyped01);
List<String> propNames = new ArrayList<String>();
propNames.add("identifier");
propNames.add("value");
EasyMock.expect(structuralType.getPropertyNames()).andReturn(propNames);
EasyMock.replay(structuralType);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
try {
Map<String, Object> result = resultParser.parse2EdmPropertyValueMap(jpaEntity, structuralType);
assertEquals(2, result.size());
} catch (ODataJPARuntimeException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testparse2EdmPropertyValueMapEdmExcep() {
JPAEntityParser resultParser = new JPAEntityParser();
Object jpaEntity = new demoItem("abc", 10);
EdmStructuralType structuralType = EasyMock
.createMock(EdmStructuralType.class);
EdmProperty edmTyped = EasyMock.createMock(EdmProperty.class);
EdmType edmType = EasyMock.createMock(EdmType.class);
EdmProperty edmTyped01 = EasyMock.createMock(EdmProperty.class);
EdmType edmType01 = EasyMock.createMock(EdmType.class);
EdmMapping edmMapping = EasyMock.createMock(JPAEdmMappingImpl.class);
EdmMapping edmMapping01 = EasyMock.createMock(JPAEdmMappingImpl.class);
try {
EasyMock.expect(edmType.getKind())
.andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.expect(edmType.getName()).andReturn("identifier");
EasyMock.replay(edmType);
EasyMock.expect(edmMapping.getInternalName()).andStubReturn("id");
EasyMock.expect(((JPAEdmMappingImpl)edmMapping).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(edmMapping);
EasyMock.expect(edmTyped.getType()).andStubThrow(
new EdmException(null));
EasyMock.expect(edmTyped.getMapping()).andStubReturn(edmMapping);
EasyMock.expect(edmTyped.getName()).andReturn("identifier").anyTimes();
EasyMock.replay(edmTyped);
EasyMock.expect(structuralType.getProperty("identifier"))
.andStubReturn(edmTyped);
EasyMock.expect(edmType01.getKind()).andStubReturn(
EdmTypeKind.SIMPLE);
EasyMock.expect(edmType01.getName()).andStubReturn("value");
EasyMock.replay(edmType01);
EasyMock.expect(edmMapping01.getInternalName()).andStubReturn(
"value");
EasyMock.expect(((JPAEdmMappingImpl)edmMapping01).isVirtualAccess())
.andStubReturn(false);
EasyMock.replay(edmMapping01);
EasyMock.expect(edmTyped01.getName()).andReturn("value").anyTimes();
EasyMock.expect(edmTyped01.getType()).andStubReturn(edmType01);
EasyMock.expect(edmTyped01.getMapping())
.andStubReturn(edmMapping01);
EasyMock.replay(edmTyped01);
EasyMock.expect(structuralType.getProperty("value")).andStubReturn(
edmTyped01);
List<String> propNames = new ArrayList<String>();
propNames.add("identifier");
propNames.add("value");
EasyMock.expect(structuralType.getPropertyNames()).andReturn(
propNames);
EasyMock.replay(structuralType);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage()
+ ODataJPATestConstants.EXCEPTION_MSG_PART_2); // assertTrue(false);
}
try {
resultParser.parse2EdmPropertyValueMap(jpaEntity, structuralType);
} catch (ODataJPARuntimeException e) {
assertTrue(true);
}
}
@Test
public void testparse2EdmPropertyListMap() {
JPAEntityParser resultParser = new JPAEntityParser();
Map<String, Object> edmEntity = new HashMap<String, Object>();
edmEntity.put("SoId", 1);
DemoRelatedEntity relatedEntity = new DemoRelatedEntity("NewOrder");
demoItem jpaEntity = new demoItem("laptop", 1);
jpaEntity.setRelatedEntity(relatedEntity);
List<EdmNavigationProperty> navigationPropertyList = new ArrayList<EdmNavigationProperty>();
// Mocking a navigation property and its mapping object
EdmNavigationProperty navigationProperty = EasyMock.createMock(EdmNavigationProperty.class);
JPAEdmMappingImpl edmMapping = EasyMock.createMock(JPAEdmMappingImpl.class);
try {
EasyMock.expect(edmMapping.getInternalName()).andStubReturn("relatedEntity");
EasyMock.expect(((JPAEdmMappingImpl)edmMapping).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(edmMapping);
EasyMock.expect(navigationProperty.getName()).andStubReturn("RelatedEntities");
EasyMock.expect(navigationProperty.getMapping()).andStubReturn(edmMapping);
EasyMock.replay(navigationProperty);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
navigationPropertyList.add(navigationProperty);
try {
HashMap<String, Object> result = resultParser.parse2EdmNavigationValueMap(jpaEntity, navigationPropertyList);
assertEquals(relatedEntity, result.get("RelatedEntities"));
} catch (ODataJPARuntimeException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
// This unit tests when there is a complex type in the select list
@SuppressWarnings("unchecked")
@Test
public void testparse2EdmPropertyValueMapFromListComplex() {
JPAEntityParser resultParser = new JPAEntityParser();
demoItem jpaEntity = new demoItem("laptop", 1);
DemoRelatedEntity relatedEntity = new DemoRelatedEntity("DemoOrder");
jpaEntity.setRelatedEntity(relatedEntity);
List<EdmProperty> selectPropertyList = new ArrayList<EdmProperty>();
// Mocking EdmProperties
EdmProperty edmProperty1 = EasyMock.createMock(EdmProperty.class);
EdmProperty edmProperty2 = EasyMock.createMock(EdmProperty.class);
EdmProperty edmComplexProperty = EasyMock.createMock(EdmProperty.class);
EdmType edmType1 = EasyMock.createMock(EdmType.class);
EdmStructuralType edmType2 = EasyMock.createMock(EdmStructuralType.class);
EdmType edmComplexType = EasyMock.createMock(EdmType.class);
JPAEdmMappingImpl mapping1 = EasyMock.createMock(JPAEdmMappingImpl.class);
JPAEdmMappingImpl mapping2 = EasyMock.createMock(JPAEdmMappingImpl.class);
JPAEdmMappingImpl complexMapping = EasyMock.createMock(JPAEdmMappingImpl.class);
try {
EasyMock.expect(edmType1.getKind()).andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.replay(edmType1);
EasyMock.expect(mapping1.getInternalName()).andStubReturn("id");
EasyMock.expect(((JPAEdmMappingImpl) mapping1).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(mapping1);
EasyMock.expect(edmProperty1.getName()).andStubReturn("Id");
EasyMock.expect(edmProperty1.getMapping()).andStubReturn(mapping1);
EasyMock.expect(edmProperty1.getType()).andStubReturn(edmType1);
EasyMock.replay(edmProperty1);
// Mocking the complex properties
EasyMock.expect(edmComplexType.getKind()).andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.replay(edmComplexType);
EasyMock.expect(complexMapping.getInternalName()).andStubReturn("order");
EasyMock.expect(((JPAEdmMappingImpl) complexMapping).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(complexMapping);
EasyMock.expect(edmComplexProperty.getName()).andStubReturn("OrderName");
EasyMock.expect(edmComplexProperty.getMapping()).andStubReturn(complexMapping);
EasyMock.expect(edmComplexProperty.getType()).andStubReturn(edmComplexType);
EasyMock.replay(edmComplexProperty);
EasyMock.expect(edmType2.getKind()).andStubReturn(EdmTypeKind.COMPLEX);
EasyMock.expect(edmType2.getProperty("OrderName")).andStubReturn(edmComplexProperty);
List<String> propertyNames = new ArrayList<String>();
propertyNames.add("OrderName");
EasyMock.expect(edmType2.getPropertyNames()).andStubReturn(propertyNames);
EasyMock.replay(edmType2);
EasyMock.expect(mapping2.getInternalName()).andStubReturn("relatedEntity");
EasyMock.expect(((JPAEdmMappingImpl) mapping2).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(mapping2);
EasyMock.expect(edmProperty2.getName()).andStubReturn("Order");
EasyMock.expect(edmProperty2.getMapping()).andStubReturn(mapping2);
EasyMock.expect(edmProperty2.getType()).andStubReturn(edmType2);
EasyMock.replay(edmProperty2);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage()
+ ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
selectPropertyList.add(edmProperty1);
selectPropertyList.add(edmProperty2);
try {
Map<String, Object> result = resultParser.parse2EdmPropertyValueMap(jpaEntity, selectPropertyList);
assertEquals(1, ((HashMap<String, Object>) result.get("Order")).size());
} catch (ODataJPARuntimeException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage()
+ ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
/*
* TestCase - getGetterName is a private method in JPAResultParser. The
* method is uses reflection to derive the property access methods from
* EdmProperty
*/
@Test
public void testGetGettersWithOutMapping() {
JPAEntityParser resultParser = new JPAEntityParser();
try {
/*
* Case 1 - Property having No mapping
*/
Class<?>[] pars = { String.class, EdmMapping.class, String.class };
Object[] params = { "Field1", null, "get" };
Method getGetterName = resultParser.getClass().getDeclaredMethod("getAccessModifierName", pars);
getGetterName.setAccessible(true);
String name = (String) getGetterName.invoke(resultParser, params);
assertEquals("getField1", name);
} catch (IllegalAccessException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (IllegalArgumentException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (InvocationTargetException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (NoSuchMethodException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (SecurityException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testGetGettersWithNullPropname() {
JPAEntityParser resultParser = new JPAEntityParser();
try {
/*
* Case 1 - Property having No mapping and no name
*/
Class<?>[] pars = { String.class, EdmMapping.class, String.class };
Object[] params = { null, null, null };
Method getGetterName = resultParser.getClass().getDeclaredMethod("getAccessModifierName", pars);
getGetterName.setAccessible(true);
String name = (String) getGetterName.invoke(resultParser, params);
assertNull(name);
} catch (IllegalAccessException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (IllegalArgumentException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (InvocationTargetException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (NoSuchMethodException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (SecurityException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
/*
* TestCase - getGetterName is a private method in JPAResultParser. The
* method is uses reflection to derive the property access methods from
* EdmProperty
*
* EdmProperty name could have been modified. Then mapping object of
* EdmProperty should be used for deriving the name
*/
@Test
public void testGetGettersWithMapping() {
JPAEntityParser resultParser = new JPAEntityParser();
EdmMapping edmMapping = EasyMock.createMock(EdmMapping.class);
EasyMock.expect(edmMapping.getInternalName()).andStubReturn("field1");
EasyMock.replay(edmMapping);
try {
Class<?>[] pars = { String.class, EdmMapping.class, String.class };
Object[] params = { "myField", edmMapping, "get" };
Method getGetterName = resultParser.getClass().getDeclaredMethod("getAccessModifierName", pars);
getGetterName.setAccessible(true);
String name = (String) getGetterName.invoke(resultParser, params);
assertEquals("getField1", name);
} catch (IllegalAccessException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (IllegalArgumentException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (InvocationTargetException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (NoSuchMethodException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (SecurityException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testGetGettersNoSuchMethodException() {
JPAEntityParser resultParser = new JPAEntityParser();
try {
Method getGetterName = resultParser.getClass().getDeclaredMethod("getGetterName1", EdmProperty.class);
getGetterName.setAccessible(true);
} catch (NoSuchMethodException e) {
assertEquals(
"org.apache.olingo.odata2.jpa.processor.core.access.data.JPAEntityParser.getGetterName1" +
"(org.apache.olingo.odata2.api.edm.EdmProperty)",
e.getMessage());
} catch (SecurityException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testParse2EdmPropertyValueMap() {
JPAEntityParser resultParser = new JPAEntityParser();
Object jpaEntity = new DemoItem2("abc");
try {
resultParser.parse2EdmPropertyValueMap(jpaEntity, getEdmPropertyList());
} catch (ODataJPARuntimeException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testGetGetterEdmException() {
JPAEntityParser resultParser = new JPAEntityParser();
Object jpaEntity = new demoItem("abc", 10);
EdmStructuralType structuralType = EasyMock.createMock(EdmStructuralType.class);
try {
EasyMock.expect(structuralType.getPropertyNames()).andStubThrow(new EdmException(null));
EasyMock.replay(structuralType);
Method getGetters =
resultParser.getClass().getDeclaredMethod("getGetters", Object.class, EdmStructuralType.class);
getGetters.setAccessible(true);
try {
getGetters.invoke(resultParser, jpaEntity, structuralType);
} catch (IllegalAccessException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (IllegalArgumentException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (InvocationTargetException e) {
assertTrue(true);
}
} catch (NoSuchMethodException e) {
assertEquals(
"org.apache.olingo.odata2.jpa.processor.core.access.data.JPAEntityParser.getGetters(java.lang.Object, " +
"org.apache.olingo.odata2.api.edm.EdmStructuralType)",
e.getMessage());
} catch (SecurityException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
@Test
public void testForNullJPAEntity() {
JPAEntityParser resultParser = new JPAEntityParser();
EdmStructuralType structuralType = EasyMock.createMock(EdmStructuralType.class);
Object map;
try {
map = resultParser.parse2EdmPropertyValueMap(null, structuralType);
assertNull(map);
} catch (ODataJPARuntimeException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
}
class demoItem {
private String id;
private int value;
private DemoRelatedEntity relatedEntity;
public String getId() {
return id;
}
public void setId(final String id) {
this.id = id;
}
public DemoRelatedEntity getRelatedEntity() {
return relatedEntity;
}
public void setRelatedEntity(final DemoRelatedEntity relatedEntity) {
this.relatedEntity = relatedEntity;
}
public int getValue() {
return value;
}
public void setValue(final int value) {
this.value = value;
}
demoItem(final String id, final int value) {
this.id = id;
this.value = value;
}
}
class DemoRelatedEntity {
String order;
public String getOrder() {
return order;
}
public void setOrder(final String order) {
this.order = order;
}
public DemoRelatedEntity(final String order) {
super();
this.order = order;
}
}
private List<EdmProperty> getEdmPropertyList() {
List<EdmProperty> properties = new ArrayList<EdmProperty>();
properties.add(getEdmProperty());
return properties;
}
class DemoItem2 {
private String field1;
public String getField1() {
return field1;
}
public void setField1(final String field) {
field1 = field;
}
public DemoItem2(final String field) {
field1 = field;
}
}
private EdmProperty getEdmProperty() {
EdmProperty edmTyped = EasyMock.createMock(EdmProperty.class);
JPAEdmMappingImpl edmMapping = EasyMock.createMock(JPAEdmMappingImpl.class);
EasyMock.expect(edmMapping.getInternalName()).andStubReturn("Field1");
EasyMock.expect(((JPAEdmMappingImpl) edmMapping).isVirtualAccess()).andStubReturn(false);
EasyMock.replay(edmMapping);
EdmType edmType = EasyMock.createMock(EdmType.class);
try {
EasyMock.expect(edmType.getKind()).andStubReturn(EdmTypeKind.SIMPLE);
EasyMock.expect(edmType.getName()).andStubReturn("identifier");
EasyMock.expect(edmTyped.getName()).andStubReturn("SalesOrderHeader");
EasyMock.expect(edmTyped.getMapping()).andStubReturn(edmMapping);
EasyMock.expect(edmTyped.getType()).andStubReturn(edmType);
EasyMock.expect(edmTyped.getMapping()).andStubReturn(edmMapping);
} catch (EdmException e) {
fail(ODataJPATestConstants.EXCEPTION_MSG_PART_1 + e.getMessage() + ODataJPATestConstants.EXCEPTION_MSG_PART_2);
}
EasyMock.replay(edmType);
EasyMock.replay(edmTyped);
return edmTyped;
}
}