blob: 45a1e4575ba2d139b6570547252a35c58a5f31ac [file] [log] [blame]
/*******************************************************************************
* 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.party.party
import org.apache.ofbiz.base.util.UtilDateTime
import org.apache.ofbiz.party.contact.ContactMechWorker
import org.apache.ofbiz.service.testtools.OFBizTestCase
class ContactMechWorkerTests extends OFBizTestCase {
ContactMechWorkerTests(String name) {
super(name)
}
void testPartyContactMechResolution() {
//control for the DemoCustomer that postal, email, telecom and ftp contact are present and return correct information
List partyContactMechValueMaps = ContactMechWorker.getPartyContactMechValueMaps(delegator, 'DemoCustomer', true)
assert partyContactMechValueMaps
assert partyContactMechValueMaps.size() == 7
boolean foundPostalAddress = false, foundTelecom = false, foundEmailAddress = false, foundFtpAddress = false
partyContactMechValueMaps.forEach {
Map partyContactMechValueMap ->
switch (partyContactMechValueMap?.contactMech?.contactMechId) {
case '9015':
foundPostalAddress = true
assert partyContactMechValueMap.contactMech.contactMechTypeId == 'POSTAL_ADDRESS'
assert partyContactMechValueMap.partyContactMech
assert partyContactMechValueMap.contactMechType
assert partyContactMechValueMap.partyContactMechPurposes
assert partyContactMechValueMap.partyContactMechPurposes.size() == 3
assert partyContactMechValueMap.postalAddress
assert partyContactMechValueMap.postalAddress.contactMechId == '9015'
assert partyContactMechValueMap.postalAddress.address1 == '2004 Factory Blvd'
break
case '9027':
foundTelecom = true
assert partyContactMechValueMap.contactMech.contactMechTypeId == 'TELECOM_NUMBER'
assert partyContactMechValueMap.partyContactMech
assert partyContactMechValueMap.contactMechType
assert partyContactMechValueMap.partyContactMechPurposes
assert partyContactMechValueMap.partyContactMechPurposes.size() == 1
assert partyContactMechValueMap.telecomNumber
assert partyContactMechValueMap.telecomNumber.contactMechId == '9027'
assert partyContactMechValueMap.telecomNumber.contactNumber == '444-4444'
break
case '9126':
foundEmailAddress = true
assert partyContactMechValueMap.contactMech.contactMechTypeId == 'EMAIL_ADDRESS'
assert partyContactMechValueMap.contactMech.infoString == 'ofbiztest@foo.com'
assert partyContactMechValueMap.partyContactMech
assert partyContactMechValueMap.contactMechType
assert partyContactMechValueMap.partyContactMechPurposes
assert partyContactMechValueMap.partyContactMechPurposes.size() == 2
break
case '9127':
foundFtpAddress = true
assert partyContactMechValueMap.contactMech.contactMechTypeId == 'FTP_ADDRESS'
assert partyContactMechValueMap.partyContactMech
assert partyContactMechValueMap.contactMechType
assert !partyContactMechValueMap.partyContactMechPurposes
assert partyContactMechValueMap.ftpAddress
assert partyContactMechValueMap.ftpAddress.hostname == 'ftp://apacheofbiz.foo.com'
break
}
}
assert foundPostalAddress && foundTelecom && foundEmailAddress && foundFtpAddress
//Restart a search at now, the email 9126 need to have only one purpose
partyContactMechValueMaps = ContactMechWorker.getPartyContactMechValueMaps(delegator, 'DemoCustomer', false, 'EMAIL_ADDRESS')
partyContactMechValueMaps.forEach { Map partyContactMechValueMap ->
switch (partyContactMechValueMap?.contactMech?.contactMechId) {
case '9126':
assert partyContactMechValueMap.partyContactMechPurposes.size() == 1
break
}
}
//Restart a search at 05/13/2001 10:00:00.000, the email 9126 need to have two purposes
partyContactMechValueMaps = ContactMechWorker.getPartyContactMechValueMaps(delegator, 'DemoCustomer',
UtilDateTime.toTimestamp('05/13/2001 10:00:00'), 'EMAIL_ADDRESS')
partyContactMechValueMaps.forEach { Map partyContactMechValueMap ->
switch (partyContactMechValueMap?.contactMech?.contactMechId) {
case '9126':
assert partyContactMechValueMap.partyContactMechPurposes.size() == 2
break
}
}
}
void testOrderContactMechResolution() {
List orderContactMechValueMaps = ContactMechWorker.getOrderContactMechValueMaps(delegator, 'Demo1002')
assert orderContactMechValueMaps
assert orderContactMechValueMaps.size() == 3
boolean foundBillingAddress = false, foundShippingAddress = false, foundOrderEmail = false
orderContactMechValueMaps.forEach { Map orderContactMechValueMap ->
switch (orderContactMechValueMap.contactMech?.contactMechId) {
case '9015':
assert orderContactMechValueMap.contactMech.contactMechTypeId == 'POSTAL_ADDRESS'
assert orderContactMechValueMap.contactMechType
assert orderContactMechValueMap.contactMechPurposeType
assert orderContactMechValueMap.orderContactMech
assert orderContactMechValueMap.postalAddress
assert orderContactMechValueMap.postalAddress.contactMechId == '9015'
assert orderContactMechValueMap.postalAddress.address1 == '2004 Factory Blvd'
foundBillingAddress = foundBillingAddress ?:
orderContactMechValueMap.contactMechPurposeType.contactMechPurposeTypeId == 'BILLING_LOCATION'
foundShippingAddress = foundShippingAddress ?:
orderContactMechValueMap.contactMechPurposeType.contactMechPurposeTypeId == 'SHIPPING_LOCATION'
break
case '9026':
assert orderContactMechValueMap.contactMech.contactMechTypeId == 'EMAIL_ADDRESS'
assert orderContactMechValueMap.contactMech.infoString == 'ofbiztest@example.com'
assert orderContactMechValueMap.orderContactMech
assert orderContactMechValueMap.contactMechType
foundOrderEmail = orderContactMechValueMap.contactMechPurposeType.contactMechPurposeTypeId == 'ORDER_EMAIL'
break
default:
fail('Unknown contact mech found')
break
}
}
assert foundBillingAddress && foundShippingAddress && foundOrderEmail
}
void testWorkEffortContactMechResolution() {
List workEffortContactMechValueMaps = ContactMechWorker.getWorkEffortContactMechValueMaps(delegator, 'TEST_CM_WORKER')
assert workEffortContactMechValueMaps
assert workEffortContactMechValueMaps.size() == 3
boolean foundPostalAddress = false, foundPhone = false, foundEmail = false
workEffortContactMechValueMaps.forEach { Map workEffortContactMechValueMap ->
switch (workEffortContactMechValueMap.contactMech?.contactMechId) {
case '9015':
assert workEffortContactMechValueMap.contactMech.contactMechTypeId == 'POSTAL_ADDRESS'
assert workEffortContactMechValueMap.contactMechType
assert workEffortContactMechValueMap.workEffortContactMech
assert workEffortContactMechValueMap.postalAddress
assert workEffortContactMechValueMap.postalAddress.contactMechId == '9015'
assert workEffortContactMechValueMap.postalAddress.address1 == '2004 Factory Blvd'
foundPostalAddress = true
break
case '9126':
assert workEffortContactMechValueMap.contactMech.contactMechTypeId == 'EMAIL_ADDRESS'
assert workEffortContactMechValueMap.contactMech.infoString == 'ofbiztest@foo.com'
assert workEffortContactMechValueMap.workEffortContactMech
assert workEffortContactMechValueMap.contactMechType
foundEmail = true
break
case '9125':
assert workEffortContactMechValueMap.contactMech.contactMechTypeId == 'TELECOM_NUMBER'
assert workEffortContactMechValueMap.workEffortContactMech
assert workEffortContactMechValueMap.contactMechType
assert workEffortContactMechValueMap.telecomNumber.contactNumber == '555-5555'
foundPhone = true
break
default:
fail('Unknown contact mech found')
break
}
}
assert foundPostalAddress && foundEmail && foundPhone
}
}