Repository: olingo-odata4 Updated Branches: refs/heads/master fa6c9d506 -> bc0a8d9d8
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/bc0a8d9d/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java new file mode 100644 index 0000000..f3b3f68 --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/EntityRetrieveTestITCase.java @@ -0,0 +1,160 @@ +/* + * 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.fit.proxy.v4; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.lang.reflect.Proxy; +import java.sql.Timestamp; +import org.apache.commons.lang3.StringUtils; +import org.apache.olingo.ext.proxy.commons.EntityTypeInvocationHandler; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.InMemoryEntities; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccessLevel; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Customer; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types. + CustomerCollection; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Employee; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types. + EmployeeCollection; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Order; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderCollection; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetail; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.OrderDetailKey; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types. + PersonCollection; +import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Product; +import org.junit.Test; + +/** + * This is the unit test class to check entity retrieve operations. + */ +public class EntityRetrieveTestITCase extends AbstractTest { + + protected InMemoryEntities getContainer() { + return container; + } + + @Test + public void exists() { + assertTrue(getContainer().getCustomers().exists(1)); + assertFalse(getContainer().getOrders().exists(1)); + } + + @Test + public void get() { + readCustomer(getContainer(), 1); + } + + @Test + public void getAll() { + final PersonCollection all = getContainer().getPeople().getAll(); + assertNotNull(all); + assertFalse(all.isEmpty()); + for (Person person : all) { + assertNotNull(person); + } + + final EmployeeCollection employees = getContainer().getPeople().getAll(EmployeeCollection.class); + assertNotNull(employees); + assertFalse(employees.isEmpty()); + for (Employee employee : employees) { + assertNotNull(employee); + } + + final CustomerCollection customers = getContainer().getPeople().getAll(CustomerCollection.class); + assertNotNull(customers); + assertFalse(customers.isEmpty()); + for (Customer customer : customers) { + assertNotNull(customer); + } + + assertTrue(all.size() > employees.size() + customers.size()); + } + + @Test + public void navigate() { + final Order order = getContainer().getOrders().get(8); + assertNotNull(order); + assertEquals(8, order.getOrderID().intValue()); + + final Timestamp date = order.getOrderDate(); + assertNotNull(date); + assertEquals(Timestamp.valueOf("2011-03-04 17:03:57.0"), date); + + final Customer customer = getContainer().getCustomers().get(1); + assertNotNull(customer); + assertEquals(1, customer.getPersonID().intValue()); + final Address address = customer.getHomeAddress(); + assertNotNull(address); + assertEquals("98052", address.getPostalCode()); + } + + @Test + public void withInlineEntry() { + final Customer customer = readCustomer(getContainer(), 1); + final Company company = customer.getCompany(); + assertEquals(0, company.getCompanyID().intValue()); + } + + @Test + public void withInlineFeed() { + final Customer customer = readCustomer(getContainer(), 1); + final OrderCollection orders = customer.getOrders(); + assertEquals(1, orders.size()); + assertEquals(8, orders.iterator().next().getOrderID().intValue()); + } + + @Test + public void withActions() { + final Product product = getContainer().getProducts().get(5); + assertEquals(5, product.getProductID().intValue()); + + try { + assertNotNull(product.operations().getClass().getMethod("addAccessRight", AccessLevel.class)); + } catch (Exception e) { + fail(); + } + } + + @Test + public void multiKey() { + final OrderDetailKey orderDetailKey = new OrderDetailKey(); + orderDetailKey.setOrderID(7); + orderDetailKey.setProductID(5); + + final OrderDetail orderDetail = getContainer().getOrderDetails().get(orderDetailKey); + assertNotNull(orderDetail); + assertEquals(7, orderDetail.getOrderID().intValue()); + assertEquals(5, orderDetail.getProductID().intValue()); + } + + @Test + public void checkForETag() { + final Order order = getContainer().getOrders().get(8); + assertTrue(StringUtils.isNotBlank( + ((EntityTypeInvocationHandler) Proxy.getInvocationHandler(order)).getETag())); + } +}
