| /******************************************************************************* |
| * 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.shipment.thirdparty.usps; |
| |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.apache.ofbiz.base.util.Debug; |
| import org.apache.ofbiz.base.util.UtilGenerics; |
| import org.apache.ofbiz.base.util.UtilMisc; |
| import org.apache.ofbiz.service.ModelService; |
| import org.apache.ofbiz.service.testtools.OFBizTestCase; |
| |
| /** |
| * Tests for USPS Webtools API services |
| * |
| * These were created for simple validation only. |
| */ |
| public class UspsServicesTests extends OFBizTestCase { |
| |
| public static String module = UspsServicesTests.class.getName(); |
| |
| public UspsServicesTests(String name) { |
| super(name); |
| } |
| |
| @Override |
| protected void setUp() throws Exception { |
| } |
| |
| @Override |
| protected void tearDown() throws Exception { |
| } |
| |
| public void testUspsTrackConfirm() throws Exception { |
| |
| // run the service |
| Map<String, Object> result = dispatcher.runSync("uspsTrackConfirm", UtilMisc.toMap("trackingId", "EJ958083578US", "shipmentGatewayConfigId", "USPS_CONFIG", "configProps", "shipment")); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsTrackConfirm] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String trackingSummary = (String) result.get("trackingSummary"); |
| Debug.logInfo("[testUspsTrackConfirm] trackingSummary: " + trackingSummary, module); |
| assertEquals("trackingSummary is correct", |
| "Your item was delivered at 8:10 am on June 1 in Wilmington DE 19801.", trackingSummary); |
| |
| List<String> trackingDetailList = UtilGenerics.checkList(result.get("trackingDetailList")); |
| assertEquals("trackingDetailList has 3 elements", 3, trackingDetailList.size()); |
| |
| Debug.logInfo("[testUspsTrackConfirm] trackingDetailList[0]: " + trackingDetailList.get(0), module); |
| assertEquals("trackingDetailList element 0 is correct", |
| "May 30 11:07 am NOTICE LEFT WILMINGTON DE 19801.", trackingDetailList.get(0)); |
| |
| Debug.logInfo("[testUspsTrackConfirm] trackingDetailList[1]: " + trackingDetailList.get(1), module); |
| assertEquals("trackingDetailList element 0 is correct", |
| "May 30 10:08 am ARRIVAL AT UNIT WILMINGTON DE 19850.", trackingDetailList.get(1)); |
| |
| Debug.logInfo("[testUspsTrackConfirm] trackingDetailList[2]: " + trackingDetailList.get(2), module); |
| assertEquals("trackingDetailList element 0 is correct", |
| "May 29 9:55 am ACCEPT OR PICKUP EDGEWATER NJ 07020.", trackingDetailList.get(2)); |
| } |
| |
| public void testUspsAddressValidation() throws Exception { |
| |
| // run the service |
| Map<String, String> paramInp = UtilMisc.toMap("address1", "6406 Ivy Lane", "city", "Greenbelt", "state", "MD"); |
| paramInp.put("shipmentGatewayConfigId", "USPS_CONFIG"); |
| paramInp.put("configProps", "shipment"); |
| Map<String, Object> result = dispatcher.runSync("uspsAddressValidation", paramInp); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsAddressValidation] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String address1 = (String) result.get("address1"); |
| Debug.logInfo("[testUspsAddressValidation] address1: " + address1, module); |
| assertEquals("address1 is correct", "6406 IVY LN", address1); |
| |
| String city = (String) result.get("city"); |
| Debug.logInfo("[testUspsAddressValidation] city: " + city, module); |
| assertEquals("city is correct", "GREENBELT", city); |
| |
| String state = (String) result.get("state"); |
| Debug.logInfo("[testUspsAddressValidation] state: " + state, module); |
| assertEquals("state is correct", "MD", state); |
| |
| String zip5 = (String) result.get("zip5"); |
| Debug.logInfo("[testUspsAddressValidation] zip5: " + zip5, module); |
| assertEquals("zip5 is correct", "20770", zip5); |
| |
| String zip4 = (String) result.get("zip4"); |
| Debug.logInfo("[testUspsAddressValidation] zip4: " + zip4, module); |
| assertEquals("zip4 is correct", "1440", zip4); |
| } |
| |
| public void testUspsCityStateLookup() throws Exception { |
| |
| // run the service |
| Map<String, Object> result = dispatcher.runSync("uspsCityStateLookup", UtilMisc.toMap("zip5", "90210", "shipmentGatewayConfigId", "USPS_CONFIG", "configProps", "shipment")); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsCityStateLookup] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String city = (String) result.get("city"); |
| Debug.logInfo("[testUspsCityStateLookup] city: " + city, module); |
| assertEquals("city is correct", "BEVERLY HILLS", city); |
| |
| String state = (String) result.get("state"); |
| Debug.logInfo("[testUspsCityStateLookup] state: " + state, module); |
| assertEquals("state is correct", "CA", state); |
| } |
| |
| public void testUspsPriorityMailStandard() throws Exception { |
| |
| // run the service |
| Map<String, Object> result = dispatcher.runSync("uspsPriorityMailStandard", UtilMisc.toMap("originZip", "4", "destinationZip", "4", "shipmentGatewayConfigId", "USPS_CONFIG", "configProps", "shipment")); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsPriorityMailStandard] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String days = (String) result.get("days"); |
| Debug.logInfo("[testUspsPriorityMailStandard] days: " + days, module); |
| assertEquals("days is correct", "1", days); |
| } |
| |
| public void testUspsPackageServicesStandard() throws Exception { |
| |
| // run the service |
| Map<String, Object> result = dispatcher.runSync("uspsPackageServicesStandard", UtilMisc.toMap("originZip", "4", "destinationZip", "4", "shipmentGatewayConfigId", "USPS_CONFIG", "configProps", "shipment")); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsPackageServicesStandard] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String days = (String) result.get("days"); |
| Debug.logInfo("[testUspsPackageServicesStandard] days: " + days, module); |
| assertEquals("days is correct", "2", days); |
| } |
| |
| public void testUspsDomesticRate() throws Exception { |
| |
| // prepare the context |
| Map<String, Object> context = new HashMap<String, Object>(); |
| |
| context.put("service", "Priority"); |
| context.put("originZip", "20770"); |
| context.put("destinationZip", "09021"); |
| context.put("pounds", "5"); |
| context.put("ounces", "1"); |
| context.put("container", "None"); |
| context.put("size", "Regular"); |
| context.put("machinable", "False"); |
| context.put("shipmentGatewayConfigId", "USPS_CONFIG"); |
| context.put("configProps", "shipment"); |
| |
| // run the service |
| Map<String, Object> result = dispatcher.runSync("uspsDomesticRate", context); |
| |
| // verify the results |
| String responseMessage = (String) result.get(ModelService.RESPONSE_MESSAGE); |
| Debug.logInfo("[testUspsDomesticRate] responseMessage: " + responseMessage, module); |
| assertEquals("Service result is success", ModelService.RESPOND_SUCCESS, responseMessage); |
| |
| String postage = (String) result.get("postage"); |
| Debug.logInfo("[testUspsDomesticRate] postage: " + postage, module); |
| assertEquals("postage is correct", "7.90", postage); |
| |
| String restrictionCodes = (String) result.get("restrictionCodes"); |
| Debug.logInfo("[testUspsDomesticRate] restrictionCodes: " + restrictionCodes, module); |
| assertEquals("restrictionCodes is correct", "B-B1-C-D-U", restrictionCodes); |
| |
| String restrictionDesc = (String) result.get("restrictionDesc"); |
| Debug.logInfo("[testUspsDomesticRate] restrictionDesc: " + restrictionDesc, module); |
| assertEquals("restrictionDesc is correct", "B. Form 2976-A", restrictionDesc.substring(0,14)); |
| } |
| } |