This is an automated email from the ASF dual-hosted git repository. jleroux pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push: new 497c950 Improved: Convert ShoppingListTests.xml to Groovy (OFBIZ-11861) 497c950 is described below commit 497c950fd159e071100c43e9c6cd3642ce62c896 Author: Jacques Le Roux <jacques.le.r...@les7arts.com> AuthorDate: Sat Jul 10 13:59:49 2021 +0200 Improved: Convert ShoppingListTests.xml to Groovy (OFBIZ-11861) This can be tested using this command: ./gradlew "ofbiz --test component=order --test suitename=shoppinglisttests" Thanks: Praveen Sharma --- .../order/minilang/test/ShoppingListTests.xml | 165 --------------------- .../apache/ofbiz/order/ShoppingListTests.groovy | 149 +++++++++++++++++++ applications/order/testdef/ShoppingListTests.xml | 2 +- 3 files changed, 150 insertions(+), 166 deletions(-) diff --git a/applications/order/minilang/test/ShoppingListTests.xml b/applications/order/minilang/test/ShoppingListTests.xml deleted file mode 100644 index a4f851a..0000000 --- a/applications/order/minilang/test/ShoppingListTests.xml +++ /dev/null @@ -1,165 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -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. ---> - -<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> - - <simple-method method-name="testCreateShoppingList" short-description="Test create shopping list" login-required="false"> - <set field="serviceCtx.partyId" value="DemoCustomer"/> - <set field="serviceCtx.shoppingListTypeId" value="SLT_WISH_LIST"/> - <set field="serviceCtx.productStoreId" value="9000"/> - <set field="serviceCtx.listName" value="Demo Wish List 1"/> - <set field="serviceCtx.isActive" value="Y"/> - <set field="serviceCtx.currencyUom" value="USD"/> - - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createShoppingList" in-map-name="serviceCtx" require-new-transaction="true"> - <result-to-field result-name="shoppingListId"/> - </call-service> - <entity-one entity-name="ShoppingList" value-field="shoppingList"/> - <assert> - <not><if-empty field="shoppingList"/></not> - <if-compare field="shoppingList.partyId" operator="equals" value="DemoCustomer"/> - <if-compare field="shoppingList.listName" operator="equals" value="Demo Wish List 1"/> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testCreateShoppingListItem" short-description="Test create shopping list item" login-required="false"> - <set field="shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.shoppingListId" from-field="shoppingListId"/> - <set field="serviceCtx.productId" value="GZ-8544"/> - <set field="serviceCtx.quantity" value="3" type="BigDecimal"/> - <set field="serviceCtx.productStoreId" value="9000"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createShoppingListItem" in-map-name="serviceCtx"> - <result-to-field result-name="shoppingListItemSeqId"/> - </call-service> - <entity-one entity-name="ShoppingListItem" value-field="shoppingListItem"/> - <assert> - <not><if-empty field="shoppingListItem"/></not> - <if-compare field="shoppingListItem.productId" operator="equals" value="GZ-8544"/> - <if-compare field="shoppingListItem.quantity" operator="equals" value="3" type="BigDecimal"/> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testCreateShoppingListItemWithSameProduct" short-description="Test create shopping list item by adding a product that already exist in shopping list." login-required="false"> - <set field="shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.shoppingListId" from-field="shoppingListId"/> - <set field="serviceCtx.productId" value="GZ-2644"/> - <set field="serviceCtx.quantity" value="2" type="BigDecimal"/> - <set field="serviceCtx.productStoreId" value="9000"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="createShoppingListItem" in-map-name="serviceCtx"> - <result-to-field result-name="shoppingListItemSeqId"/> - </call-service> - <entity-one entity-name="ShoppingListItem" value-field="shoppingListItem"/> - <assert> - <not><if-empty field="shoppingListItem"/></not> - <if-compare field="shoppingListItem.quantity" operator="equals" value="7" type="BigDecimal"/> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testUpdateShoppingList" short-description="Test update shopping list by updating the listName" login-required="false"> - <set field="serviceCtx.shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.listName" value="New Demo Wish List"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="updateShoppingList" in-map-name="serviceCtx"/> - <entity-one entity-name="ShoppingList" value-field="shoppingList"> - <field-map field-name="shoppingListId" from-field="serviceCtx.shoppingListId"/> - </entity-one> - <assert> - <not><if-empty field="shoppingList"/></not> - <if-compare field="shoppingList.listName" operator="equals" value="New Demo Wish List"/> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testUpdateShoppingListItem" short-description="Test update shopping list item by updating quantity of item" login-required="false"> - <set field="serviceCtx.shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.shoppingListItemSeqId" value="00002"/> - <set field="serviceCtx.quantity" value="4" type="BigDecimal"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="updateShoppingListItem" in-map-name="serviceCtx"/> - <entity-one entity-name="ShoppingListItem" value-field="shoppingListItem"> - <field-map field-name="shoppingListId" from-field="serviceCtx.shoppingListId"/> - <field-map field-name="shoppingListItemSeqId" value="00002"/> - </entity-one> - <assert> - <not><if-empty field="shoppingListItem"/></not> - <if-compare field="shoppingListItem.quantity" operator="equals" value="4" type="BigDecimal"/> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testUpdateShoppingListItemWithZeroQty" short-description="Test update shopping list item for a product with zero quantity" login-required="false"> - <set field="serviceCtx.shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.shoppingListItemSeqId" value="00003"/> - <set field="serviceCtx.quantity" value="0" type="BigDecimal"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="updateShoppingListItem" in-map-name="serviceCtx"/> - <entity-one entity-name="ShoppingListItem" value-field="shoppingListItem"> - <field-map field-name="shoppingListId" from-field="serviceCtx.shoppingListId"/> - <field-map field-name="shoppingListItemSeqId" value="00003"/> - </entity-one> - <assert> - <not><if-empty field="shoppingListItem"/></not> - </assert> - <check-errors/> - </simple-method> - - <simple-method method-name="testRemoveShoppingListItem" short-description="Test remove shopping list item" login-required="false"> - <set field="serviceCtx.shoppingListId" value="DemoWishList"/> - <set field="serviceCtx.shoppingListItemSeqId" value="00002"/> - <entity-one entity-name="UserLogin" value-field="userLogin"> - <field-map field-name="userLoginId" value="DemoCustomer"/> - </entity-one> - <set field="serviceCtx.userLogin" from-field="userLogin"/> - <call-service service-name="removeShoppingListItem" in-map-name="serviceCtx"/> - <entity-one entity-name="ShoppingListItem" value-field="shoppingListItem"> - <field-map field-name="shoppingListId" from-field="serviceCtx.shoppingListId"/> - <field-map field-name="shoppingListItemSeqId" value="00002"/> - </entity-one> - <assert> - <if-empty field="shoppingListItem"/> - </assert> - <check-errors/> - </simple-method> -</simple-methods> diff --git a/applications/order/src/main/groovy/org/apache/ofbiz/order/ShoppingListTests.groovy b/applications/order/src/main/groovy/org/apache/ofbiz/order/ShoppingListTests.groovy new file mode 100644 index 0000000..ff9094d --- /dev/null +++ b/applications/order/src/main/groovy/org/apache/ofbiz/order/ShoppingListTests.groovy @@ -0,0 +1,149 @@ +/* + * 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.ofbiz.order + +import org.apache.ofbiz.entity.GenericValue +import org.apache.ofbiz.service.ServiceUtil +import org.apache.ofbiz.service.testtools.OFBizTestCase + +class ShoppingListTests extends OFBizTestCase { + public ShoppingListTests(String name) { + super(name) + } + + // Test create shopping list. + void testCreateShoppingList() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + Map serviceCtx = [ + partyId: 'DemoCustomer', + shoppingListTypeId: 'SLT_WISH_LIST', + productStoreId: '9000', + listName: 'Demo Wish List 1', + isActive: 'Y', + currencyUom: 'USD', + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('createShoppingList', serviceCtx, 600, true); + def shoppingListId = resultMap.shoppingListId; + GenericValue shoppingList = delegator.findOne("ShoppingList", [shoppingListId:shoppingListId], false); + assert ServiceUtil.isSuccess(resultMap); + assert shoppingList; + assert shoppingList.partyId == 'DemoCustomer'; + assert shoppingList.listName == 'Demo Wish List 1'; + } + + // Test create shopping list item + void testCreateShoppingListItem() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + def shoppingListId = 'DemoWishList'; + Map serviceCtx = [ + shoppingListId: shoppingListId, + productId: 'GZ-8544', + quantity: new BigDecimal(3), + productStoreId: '9000', + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('createShoppingListItem', serviceCtx); + def shoppingListItemSeqId = resultMap.shoppingListItemSeqId; + GenericValue shoppingListItem = from('ShoppingListItem').where('shoppingListItemSeqId', shoppingListItemSeqId).queryOne() + assert ServiceUtil.isSuccess(resultMap); + assert shoppingListItem; + assert shoppingListItem.productId == 'GZ-8544'; + assert shoppingListItem.quantity == 3; + } + + // Test create shopping list item by adding a product that already exist in shopping list. + void testCreateShoppingListItemWithSameProduct() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + def shoppingListId = 'DemoWishList'; + Map serviceCtx = [ + shoppingListId: shoppingListId, + productId: 'GZ-2644', + quantity: new BigDecimal(2), + productStoreId: '9000', + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('createShoppingListItem', serviceCtx); + def shoppingListItemSeqId = resultMap.shoppingListItemSeqId; + GenericValue shoppingListItem = from('ShoppingListItem').where('shoppingListItemSeqId', shoppingListItemSeqId).queryOne() + assert ServiceUtil.isSuccess(resultMap); + assert shoppingListItem; + assert shoppingListItem.quantity == 7; + } + + // Test update shopping list by updating the listName + void testUpdateShoppingList() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + Map serviceCtx = [ + shoppingListId: 'DemoWishList', + listName: 'New Demo Wish List', + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('updateShoppingList', serviceCtx); + GenericValue shoppingList = delegator.findOne("ShoppingList", [shoppingListId:serviceCtx.shoppingListId], false); + assert ServiceUtil.isSuccess(resultMap); + assert shoppingList; + assert shoppingList.listName == 'New Demo Wish List'; + } + + // Test update shopping list item by updating quantity of item + void testUpdateShoppingListItem () { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + Map serviceCtx = [ + shoppingListId: 'DemoWishList', + shoppingListItemSeqId: '00002', + quantity: new BigDecimal(4), + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('updateShoppingListItem', serviceCtx); + GenericValue shoppingListItem = delegator.findOne("ShoppingListItem", [shoppingListId:serviceCtx.shoppingListId, 'shoppingListItemSeqId': '00002'], false); + assert ServiceUtil.isSuccess(resultMap) + assert shoppingListItem + assert shoppingListItem.quantity == 4 + } + + // Test update shopping list item for a product with zero quantity + void testUpdateShoppingListItemWithZeroQty() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + Map serviceCtx = [ + shoppingListId: 'DemoWishList', + shoppingListItemSeqId: '00003', + quantity: new BigDecimal(0), + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('updateShoppingListItem', serviceCtx); + GenericValue shoppingListItem = delegator.findOne("ShoppingListItem", [shoppingListId:serviceCtx.shoppingListId, 'shoppingListItemSeqId': '00003'], false); + assert ServiceUtil.isSuccess(resultMap) + assert shoppingListItem + } + + // Test remove shopping list item + void testRemoveShoppingListItem() { + GenericValue userLogin = delegator.findOne("UserLogin", [userLoginId:'DemoCustomer'], false); + Map serviceCtx = [ + shoppingListId: 'DemoWishList', + shoppingListItemSeqId: '00002', + userLogin: userLogin + ] + Map resultMap = dispatcher.runSync('removeShoppingListItem', serviceCtx); + GenericValue shoppingListItem = delegator.findOne("ShoppingListItem", [shoppingListId:serviceCtx.shoppingListId, 'shoppingListItemSeqId': '00002'], false); + assert ServiceUtil.isSuccess(resultMap) + assert !shoppingListItem + } +} diff --git a/applications/order/testdef/ShoppingListTests.xml b/applications/order/testdef/ShoppingListTests.xml index e1a723c..7484e6b 100644 --- a/applications/order/testdef/ShoppingListTests.xml +++ b/applications/order/testdef/ShoppingListTests.xml @@ -27,6 +27,6 @@ under the License. </test-case> <test-case case-name="shoppingList-test"> - <simple-method-test location="component://order/minilang/test/ShoppingListTests.xml"/> + <junit-test-suite class-name="org.apache.ofbiz.order.ShoppingListTests"/> </test-case> </test-suite>