| /******************************************************************************* |
| * 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.ofbiz.service.test; |
| |
| import java.util.HashMap; |
| import java.util.Locale; |
| import java.util.Map; |
| |
| import org.ofbiz.base.util.UtilDateTime; |
| import org.ofbiz.base.util.UtilMisc; |
| import org.ofbiz.base.util.UtilProperties; |
| import org.ofbiz.entity.GenericValue; |
| import org.ofbiz.entity.util.EntityQuery; |
| import org.ofbiz.service.ServiceUtil; |
| import org.ofbiz.service.testtools.OFBizTestCase; |
| |
| public class ServiceEntityAutoTests extends OFBizTestCase { |
| |
| public ServiceEntityAutoTests(String name) { |
| super(name); |
| } |
| |
| @Override |
| protected void setUp() throws Exception { |
| } |
| |
| @Override |
| protected void tearDown() throws Exception { |
| } |
| |
| public void testEntityAutoCreateSinglPkEntity() throws Exception { |
| //test create with given pk |
| Map<String, Object> testingPkPresentMap = new HashMap<String, Object>(); |
| testingPkPresentMap.put("testingId", "TESTING_1"); |
| testingPkPresentMap.put("testingName", "entity auto testing"); |
| Map<String, Object> results = dispatcher.runSync("testEntityAutoCreateTestingPkPresent", testingPkPresentMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| GenericValue testing = EntityQuery.use(delegator).from("Testing").where("testingId", "TESTING_1").queryOne(); |
| assertNotNull(testing); |
| |
| //test create with auto sequence |
| Map<String, Object> testingPkMissingMap = new HashMap<String, Object>(); |
| testingPkPresentMap.put("testingName", "entity auto testing without pk part in"); |
| results = dispatcher.runSync("testEntityAutoCreateTestingPkMissing", testingPkMissingMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| testing = EntityQuery.use(delegator).from("Testing").where("testingId", results.get("testingId")).queryOne(); |
| assertNotNull(testing); |
| |
| //test collision |
| results = dispatcher.runSync("testEntityAutoCreateTestingPkPresent", testingPkPresentMap, 10, true); |
| assertTrue(ServiceUtil.isError(results)); |
| } |
| |
| public void testEntityAutoCreateDoublePkEntity() throws Exception { |
| delegator.create("Testing", "testingId", "TESTING_2"); |
| |
| //test create with given pk |
| Map<String, Object> testingItemPkPresentMap = UtilMisc.toMap("testingId", "TESTING_2", "testingSeqId", "00001"); |
| Map<String, Object> results = dispatcher.runSync("testEntityAutoCreateTestingItemPkPresent", testingItemPkPresentMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| GenericValue testingItem = EntityQuery.use(delegator) |
| .from("TestingItem") |
| .where("testingId", "TESTING_2", "testingSeqId", "00001") |
| .queryOne(); |
| assertNotNull(testingItem); |
| |
| //test create with auto sub-sequence |
| Map<String, Object> testingItemPkMissingMap = UtilMisc.toMap("testingId", "TESTING_2"); |
| results = dispatcher.runSync("testEntityAutoCreateTestingItemPkMissing", testingItemPkMissingMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| testingItem = EntityQuery.use(delegator) |
| .from("TestingItem") |
| .where("testingId", "TESTING_2", "testingSeqId", results.get("testingSeqId")) |
| .queryOne(); |
| assertNotNull(testingItem); |
| assertEquals("00002", testingItem.get("testingSeqId")); |
| |
| //test collision |
| results = dispatcher.runSync("testEntityAutoCreateTestingItemPkPresent", testingItemPkPresentMap, 10, true); |
| assertTrue(ServiceUtil.isError(results)); |
| //assertEquals("", ServiceUtil.getErrorMessage(results)); |
| } |
| |
| public void testEntityAutoCreateMultiPkEntity() throws Exception { |
| delegator.create("TestingNode", "testingNodeId", "NODE_1"); |
| delegator.create("Testing", "testingId", "TESTING_3"); |
| |
| //test create given pk |
| Map<String, Object> testingNodeMemberPkPresentMap = UtilMisc.toMap("testingId", "TESTING_3", |
| "testingNodeId", "NODE_1", "fromDate", UtilDateTime.toTimestamp("01/01/2010 00:00:00")); |
| Map<String, Object> results = dispatcher.runSync("testEntityAutoCreateTestingNodeMemberPkPresent", testingNodeMemberPkPresentMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| GenericValue testingNodeMember = EntityQuery.use(delegator) |
| .from("TestingNodeMember") |
| .where(testingNodeMemberPkPresentMap) |
| .queryOne(); |
| assertNotNull(testingNodeMember); |
| testingNodeMember.remove(); |
| |
| //test create auto sub-sequence |
| //test missing pk fromDate |
| Map<String, Object> testingNodeMemberPkMissingMap = UtilMisc.toMap("testingId", "TESTING_3", "testingNodeId", "NODE_1"); |
| results = dispatcher.runSync("testEntityAutoCreateTestingNodeMemberPkMissing", testingNodeMemberPkMissingMap, 10, true); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| } |
| |
| public void testEntityAutoUpdateEntity() throws Exception { |
| delegator.create("Testing", "testingId", "TESTING_4", "testingName", "entity auto testing"); |
| |
| //test update with exist pk |
| Map<String, Object> testingUpdateMap = UtilMisc.toMap("testingId", "TESTING_4", "testingName", "entity auto testing updated"); |
| Map<String, Object> results = dispatcher.runSync("testEntityAutoUpdateTesting", testingUpdateMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| GenericValue testing = EntityQuery.use(delegator).from("Testing").where("testingId", "TESTING_4").queryOne(); |
| assertEquals("entity auto testing updated", testing.getString("testingName")); |
| |
| //test update with bad pk |
| Map<String, Object> testingUpdateFailedMap = UtilMisc.toMap("testingId", "TESTING_4_FAILED", "testingName", "entity auto testing updated"); |
| results = dispatcher.runSync("testEntityAutoUpdateTesting", testingUpdateFailedMap, 10, true); |
| assertTrue(ServiceUtil.isError(results)); |
| assertEquals(UtilProperties.getMessage("ServiceErrorUiLabels", "ServiceValueNotFound", Locale.ENGLISH), ServiceUtil.getErrorMessage(results)); |
| } |
| |
| public void testEntityAutoDeleteEntity() throws Exception { |
| delegator.create("Testing", "testingId", "TESTING_5"); |
| |
| //test delete with exist pk |
| Map<String, Object> testingDeleteMap = UtilMisc.toMap("testingId", "TESTING_5"); |
| Map<String, Object> results = dispatcher.runSync("testEntityAutoRemoveTesting", testingDeleteMap); |
| assertTrue(ServiceUtil.isSuccess(results)); |
| GenericValue testing = EntityQuery.use(delegator).from("Testing").where("testingId", "TESTING_5").queryOne(); |
| assertNull(testing); |
| |
| //test create with bad pk |
| Map<String, Object> testingDeleteFailedMap = UtilMisc.toMap("testingId", "TESTING_5_FAILED"); |
| results = dispatcher.runSync("testEntityAutoRemoveTesting", testingDeleteFailedMap); |
| assertTrue(ServiceUtil.isError(results)); |
| assertEquals(UtilProperties.getMessage("ServiceErrorUiLabels", "ServiceValueNotFoundForRemove", Locale.ENGLISH), ServiceUtil.getErrorMessage(results)); |
| } |
| } |