/******************************************************************************* * 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.client.core.edm.impl; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.olingo.odata2.api.edm.EdmAssociation; import org.apache.olingo.odata2.api.edm.EdmAssociationSet; import org.apache.olingo.odata2.api.edm.EdmComplexType; import org.apache.olingo.odata2.api.edm.EdmCustomizableFeedMappings; import org.apache.olingo.odata2.api.edm.EdmEntityContainer; import org.apache.olingo.odata2.api.edm.EdmEntitySet; import org.apache.olingo.odata2.api.edm.EdmException; import org.apache.olingo.odata2.api.edm.EdmFunctionImport; 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.EdmTypeKind; import org.apache.olingo.odata2.api.edm.FullQualifiedName; import org.apache.olingo.odata2.client.core.edm.Impl.EdmAnnotationsImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmAssociationImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmComplexTypeImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmCustomizableFeedMappingsImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmDocumentationImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmEntityContainerImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmEntitySetImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmEntityTypeImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmMappingImpl; import org.apache.olingo.odata2.client.core.edm.Impl.EdmNavigationPropertyImpl; import org.junit.Before; import org.junit.Test; public class EdmEntityImplTest { private EdmAnnotationsImpl annotations; private EdmDocumentationImpl documentation; private EdmImpl edm; private EdmEntityContainerImpl edmEntityContainer; private EdmEntityTypeImpl edmEntityType; private FullQualifiedName fqName; private FullQualifiedName entityTypeName; private EdmMapping mapping; private String name; private EdmCustomizableFeedMappings edmCustomizableFeedMappings; private List<EdmProperty> edmKeyProperties; private List<String> edmKeyPropertyNames; private List<EdmNavigationProperty> navigationProperties; private EdmComplexTypeImpl structuralType; @Before public void initialize() throws EdmException { annotations = new EdmAnnotationsImpl(); documentation = new EdmDocumentationImpl(); edm = new EdmImpl(); edmEntityContainer = new EdmEntityContainerImpl(edm); edmEntityType = new EdmEntityTypeImpl(); fqName = new FullQualifiedName("namespace", "name"); entityTypeName = new FullQualifiedName("namespace", "name"); mapping = new EdmMappingImpl(); name = "name"; edmCustomizableFeedMappings = new EdmCustomizableFeedMappingsImpl(); edmKeyProperties = new ArrayList<EdmProperty>(); edmKeyPropertyNames = new ArrayList<String>(); navigationProperties = new ArrayList<EdmNavigationProperty>(); structuralType = new EdmComplexTypeImpl(); structuralType.setName("name"); structuralType.setNamespace("namespace"); structuralType.setMapping(mapping); Map<FullQualifiedName, EdmComplexType> edmComplexTypes = new HashMap<FullQualifiedName, EdmComplexType>(); edmComplexTypes.put(new FullQualifiedName("namespace", "name"), structuralType); edm.setEdmComplexTypes(edmComplexTypes); Map<FullQualifiedName, EdmAssociation> associationmap = new HashMap<FullQualifiedName, EdmAssociation>(); associationmap.put(entityTypeName, new EdmAssociationImpl()); edm.setEdmAssociations(associationmap); Map<String, String> aliasToNamespaceInfo = new HashMap<String, String>(); aliasToNamespaceInfo.put("alias", "namespace"); edm.setAliasToNamespaceInfo(aliasToNamespaceInfo ); } @Test public void entitySetTest() throws EdmException { EdmEntitySetImpl entity = new EdmEntitySetImpl(); entity.setAnnotations(annotations); entity.setDocumentation(documentation); entity.setEdm(edm); entity.setEdmEntityContainer(edmEntityContainer); entity.setEdmEntityType(edmEntityType); entity.setEdmEntityTypeName(fqName); entity.setEntityTypeName(entityTypeName); entity.setMapping(mapping); entity.setName(name); assertNotNull(entity); assertNotNull(entity.getAnnotations()); assertNotNull(entity.getDocumentation()); assertNotNull(entity.getEdmEntityContainer()); assertNotNull(entity.getEdmEntityType()); assertNotNull(entity.getEntityContainer()); assertNotNull(entity.getEntityType()); assertNotNull(entity.getEntityTypeName()); assertNotNull(entity.getMapping()); assertNotNull(entity.getName()); } @Test public void entityTypeTest() throws EdmException { EdmEntityTypeImpl entity = new EdmEntityTypeImpl(); entity.setAnnotations(annotations); entity.setAbstract(true); entity.setEdm(edm); entity.setBaseType(entityTypeName); entity.setCustomizableFeedMappings(edmCustomizableFeedMappings); entity.setEdmBaseType(edmEntityType); entity.setEdmKeyProperties(edmKeyProperties); entity.setEdmKeyPropertyNames(edmKeyPropertyNames); entity.setName(name); entity.setEdmNavigationPropertyNames(edmKeyPropertyNames); entity.setEdmPropertyNames(edmKeyPropertyNames); entity.setEdmTypeKind(EdmTypeKind.SIMPLE); entity.setHasStream(true); entity.setNamespace("namespace"); entity.setNavigationProperties(navigationProperties); entity.setProperties(edmKeyProperties); entity.setStructuralType(structuralType); assertNotNull(entity); assertNotNull(entity.getAnnotations()); assertNotNull(entity.getBaseType()); assertNotNull(entity.getBaseTypeName()); assertNotNull(entity.getCustomizableFeedMappings()); assertNotNull(entity.getEdmBaseType()); assertNotNull(entity.getEdmTypeKind()); assertNotNull(entity.getKeyProperties()); assertNotNull(entity.getKeyPropertyNames()); assertNotNull(entity.getKind()); assertNotNull(entity.getMapping()); assertNotNull(entity.getName()); assertNotNull(entity.getNamespace()); assertNotNull(entity.getNavigationPropertyNames()); assertNotNull(entity.getProperties()); assertNotNull(entity.getPropertyNames()); assertNotNull(entity.getStructuralType()); } @Test public void entityContainerTest() throws EdmException { EdmEntityContainerImpl cont = new EdmEntityContainerImpl(edm); cont.setAnnotations(annotations); cont.setDefaultContainer(true); cont.setDocumentation(documentation); cont.setEdm(edm); cont.setEdmAssociationSets(new ArrayList<EdmAssociationSet>()); List<EdmEntitySet> entitySets = new ArrayList<EdmEntitySet>(); cont.setEdmEntitySets(entitySets); cont.setEdmExtendedEntityContainer(new EdmEntityContainerImpl(edm)); cont.setEdmFunctionImports(new ArrayList<EdmFunctionImport>()); cont.setEntityContainerHierachy(new ArrayList<EdmEntityContainer>()); cont.setExtendz(name); cont.setName(name); assertNotNull(cont); EdmEntitySet entitySet = new EdmEntitySetImpl(); ((EdmEntitySetImpl) entitySet).setName(name); EdmNavigationProperty nav = new EdmNavigationPropertyImpl(); ((EdmNavigationPropertyImpl) nav).setEdm(edm); ((EdmNavigationPropertyImpl) nav).setRelationshipName(entityTypeName); entitySets.add(entitySet); assertNotNull(cont.getAssociationSets()); assertNotNull(cont.getDocumentation()); assertNotNull(cont.getEdm()); assertNotNull(cont.getEdmAssociationSets()); assertNotNull(cont.getEdmEntitySets()); assertNotNull(cont.getEdmExtendedEntityContainer()); assertNotNull(cont.getEdmFunctionImports()); assertNotNull(cont.getEntitySet(name)); assertNotNull(cont.getEntitySets()); assertNotNull(cont.getExtendz()); assertNull(cont.getFunctionImport(name)); assertNotNull(cont.getName()); } @Test public void complexTypeTest() throws EdmException { EdmComplexType complexType = edm.getComplexType("namespace", "name"); assertNotNull(complexType); complexType = edm.getComplexType("alias", "name"); assertNotNull(complexType); } }