You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Pranay Pandey <pr...@hotwaxmedia.com> on 2014/10/09 13:48:57 UTC
Re: svn commit: r1630079 - in /ofbiz/trunk/framework: entity/entitydef/entitymodel_test.xml service/servicedef/services_test_se.xml service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java service/testdef/servicetests.xml
Nice addition Nicolas. Thanks.
Pranay Pandey
HotWax Media
http://www.hotwaxmedia.com
On Oct 8, 2014, at 5:47 PM, nmalin@apache.org wrote:
> Author: nmalin
> Date: Wed Oct 8 12:17:55 2014
> New Revision: 1630079
>
> URL: http://svn.apache.org/r1630079
> Log:
> Add junit test to control entity-auto on create, update and delete to ensure no regression when the entity-auto engine will be improve (like OFBIZ-5800)
>
> Added:
> ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java (with props)
> Modified:
> ofbiz/trunk/framework/entity/entitydef/entitymodel_test.xml
> ofbiz/trunk/framework/service/servicedef/services_test_se.xml
> ofbiz/trunk/framework/service/testdef/servicetests.xml
>
> Modified: ofbiz/trunk/framework/entity/entitydef/entitymodel_test.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/entitydef/entitymodel_test.xml?rev=1630079&r1=1630078&r2=1630079&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/entity/entitydef/entitymodel_test.xml (original)
> +++ ofbiz/trunk/framework/entity/entitydef/entitymodel_test.xml Wed Oct 8 12:17:55 2014
> @@ -123,6 +123,21 @@ under the License.
> <prim-key field="testFieldTypeId"/>
> </entity>
> <!-- =========================================================
> + Testing Item entity : testing line on a Testing entity
> + ========================================================= -->
> + <entity entity-name="TestingItem"
> + package-name="org.ofbiz.entity.test"
> + title="Testing Item">
> + <field name="testingId" type="id-ne"/>
> + <field name="testingSeqId" type="id-ne"/>
> + <field name="testingHistory" type="very-long"/>
> + <prim-key field="testingId"/>
> + <prim-key field="testingSeqId"/>
> + <relation type="one" fk-name="TESTING_IT_TEST" rel-entity-name="Testing">
> + <key-map field-name="testingId"/>
> + </relation>
> + </entity>
> + <!-- =========================================================
> Testing Node entity : hierarchy of nodes having
> 'testing node member' as potential members
> ========================================================= -->
>
> Modified: ofbiz/trunk/framework/service/servicedef/services_test_se.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/servicedef/services_test_se.xml?rev=1630079&r1=1630078&r2=1630079&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/service/servicedef/services_test_se.xml (original)
> +++ ofbiz/trunk/framework/service/servicedef/services_test_se.xml Wed Oct 8 12:17:55 2014
> @@ -48,6 +48,50 @@ under the License.
> location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryWaiter">
> </service>
>
> + <!-- testing different entity-auto call-->
> + <service name="testEntityAutoCreateTestingPkPresent" auth="false"
> + engine="entity-auto" default-entity-name="Testing" invoke="create">
> + <auto-attributes include="pk" mode="IN" optional="false"/>
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + </service>
> + <service name="testEntityAutoCreateTestingPkMissing" auth="false"
> + engine="entity-auto" default-entity-name="Testing" invoke="create">
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + <attribute name="testingId" mode="OUT" type="String"/>
> + </service>
> + <service name="testEntityAutoCreateTestingItemPkPresent" auth="false"
> + engine="entity-auto" default-entity-name="TestingItem" invoke="create">
> + <auto-attributes include="pk" mode="IN" optional="false"/>
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + </service>
> + <service name="testEntityAutoCreateTestingItemPkMissing" auth="false"
> + engine="entity-auto" default-entity-name="TestingItem" invoke="create">
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + <attribute name="testingId" mode="IN" type="String"/>
> + <attribute name="testingSeqId" mode="OUT" type="String"/>
> + </service>
> + <service name="testEntityAutoCreateTestingNodeMemberPkPresent" auth="false"
> + engine="entity-auto" default-entity-name="TestingNodeMember" invoke="create">
> + <auto-attributes include="pk" mode="IN" optional="false"/>
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + </service>
> + <service name="testEntityAutoCreateTestingNodeMemberPkMissing" auth="false"
> + engine="entity-auto" default-entity-name="TestingNodeMember" invoke="create">
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + <attribute name="testingId" mode="IN" type="String"/>
> + <attribute name="testingNodeId" mode="IN" type="String"/>
> + <attribute name="fromDate" mode="OUT" type="String"/>
> + </service>
> + <service name="testEntityAutoUpdateTesting" auth="false"
> + engine="entity-auto" default-entity-name="Testing" invoke="update">
> + <auto-attributes include="pk" mode="IN" optional="false"/>
> + <auto-attributes include="nonpk" mode="IN" optional="true"/>
> + </service>
> + <service name="testEntityAutoRemoveTesting" auth="false"
> + engine="entity-auto" default-entity-name="Testing" invoke="delete">
> + <auto-attributes include="pk" mode="IN" optional="false"/>
> + </service>
> +
> <!-- lock wait timeout retry testing services - a scenario that we can't do automatically with the single service because the parent owns the tx we have to have end before it will succeed -->
> <service name="testServiceLockWaitTimeoutRetryCantRecover" engine="java" auth="false" transaction-timeout="2"
> location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryCantRecover">
>
> Added: ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java?rev=1630079&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java (added)
> +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java Wed Oct 8 12:17:55 2014
> @@ -0,0 +1,147 @@
> +/*******************************************************************************
> + * 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.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 = delegator.findOne("Testing", false, "testingId", "TESTING_1");
> + 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 = delegator.findOne("Testing", false, "testingId", results.get("testingId"));
> + 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 = delegator.findOne("TestingItem", false, "testingId", "TESTING_2", "testingSeqId", "00001");
> + 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 = delegator.findOne("TestingItem", false, "testingId", "TESTING_2", "testingSeqId", results.get("testingSeqId"));
> + 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 = delegator.findOne("TestingNodeMember", false, testingNodeMemberPkPresentMap);
> + assertNotNull(testingNodeMember);
> + testingNodeMember.remove();
> +
> + //test create auto sub-sequence
> + //test missing pk
> + Map<String, Object> testingNodeMemberPkMissingMap = UtilMisc.toMap("testingId", "TESTING_3", "testingNodeId", "NODE_1");
> + results = dispatcher.runSync("testEntityAutoCreateTestingNodeMemberPkMissing", testingNodeMemberPkMissingMap, 10, true);
> + assertTrue(ServiceUtil.isError(results));
> + assertTrue(ServiceUtil.getErrorMessage(results).contains("1. a single OUT pk for primary auto-sequencing"));
> + }
> +
> + 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 = delegator.findOne("Testing", false, "testingId", "TESTING_4");
> + 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 = delegator.findOne("Testing", false, "testingId", "TESTING_5");
> + assertNull(testing);
> +
> + //test create with bad pk
> + Map<String, Object> testingDeleteFailedMap = UtilMisc.toMap("testingId", "TESTING_5_FAILED");
> + results = dispatcher.runSync("testEntityAutoRemoveTesting", testingDeleteFailedMap);
> + assertTrue(ServiceUtil.isSuccess(results));
> + //assertEquals(UtilProperties.getMessage("ServiceErrorUiLabels", "ServiceValueNotFound", Locale.ENGLISH), ServiceUtil.getErrorMessage(results));
> + }
> +}
>
> Propchange: ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
> ------------------------------------------------------------------------------
> svn:keywords = Date Rev Author URL Id
>
> Propchange: ofbiz/trunk/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
> Modified: ofbiz/trunk/framework/service/testdef/servicetests.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/testdef/servicetests.xml?rev=1630079&r1=1630078&r2=1630079&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/service/testdef/servicetests.xml (original)
> +++ ofbiz/trunk/framework/service/testdef/servicetests.xml Wed Oct 8 12:17:55 2014
> @@ -23,6 +23,7 @@ under the License.
> xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/test-suite.xsd">
> <test-case case-name="service-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceEngineTests"/></test-case>
> <test-case case-name="service-soap-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceSOAPTests"/></test-case>
> + <test-case case-name="service-entity-auto-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceEntityAutoTests"/></test-case>
>
> <test-case case-name="load-service-test-data">
> <entity-xml action="load" entity-xml-url="component://service/testdef/data/ServiceTestData.xml"/>
>
>