blob: ada85535647598ecf49ea30bb2dd55f1765eb8cc [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.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);
}
}