/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.vnd.document.service;
import static org.kuali.kfs.sys.fixture.UserNameFixture.khuntley;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address1;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address2;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address3;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address4;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address5;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address6;
import static org.kuali.kfs.vnd.fixture.VendorAddressFixture.address7;
import java.util.ArrayList;
import java.util.List;
import org.kuali.kfs.sys.ConfigureContext;
import org.kuali.kfs.sys.context.KualiTestBase;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.kfs.vnd.businessobject.VendorAddress;
import org.kuali.kfs.vnd.businessobject.VendorDetail;
import org.kuali.kfs.vnd.businessobject.VendorHeader;
import org.kuali.kfs.vnd.fixture.VendorAddressFixture;
import org.kuali.kfs.vnd.fixture.VendorRoutingChangesFixture;
@ConfigureContext(session = khuntley)
public class VendorServiceTest extends KualiTestBase {
public VendorDetail oldVDtl;
public VendorHeader oldVHdr;
public VendorDetail newVDtl;
public VendorHeader newVHdr;
@Override
protected void setUp() throws Exception {
super.setUp();
oldVDtl = new VendorDetail();
oldVHdr = new VendorHeader();
newVDtl = new VendorDetail();
newVHdr = new VendorHeader();
}
@Override
protected void tearDown() throws Exception {
oldVDtl = null;
oldVHdr = null;
newVDtl = null;
newVHdr = null;
super.tearDown();
}
private List addresses;
private void testGetVendorDefaultAddress(Integer expectedDefaultId, List addresses, String addressType, String campus) {
VendorAddress address = SpringContext.getBean(VendorService.class).getVendorDefaultAddress(addresses, addressType, campus);
Integer resultDefaultId = null;
if (address != null) {
resultDefaultId = address.getVendorAddressGeneratedIdentifier();
}
assertEquals("Did not get expected default", expectedDefaultId, resultDefaultId);
}
public void testGetVendorDefaultAddress_test1() {
addresses = setupAddresses(new VendorAddressFixture[] { address5, address6 });
testGetVendorDefaultAddress(address6.vendorAddressGeneratedIdentifier, addresses, "PO", "IN");
}
public void testGetVendorDefaultAddress_test2() {
addresses = setupAddresses(new VendorAddressFixture[] { address1, address2 });
testGetVendorDefaultAddress(address1.vendorAddressGeneratedIdentifier, addresses, "PO", "BL");
}
public void testGetVendorDefaultAddress_test3() {
addresses = setupAddresses(new VendorAddressFixture[] { address1, address2 });
testGetVendorDefaultAddress(address1.vendorAddressGeneratedIdentifier, addresses, "PO", "");
}
public void testGetVendorDefaultAddress_test4() {
addresses = setupAddresses(new VendorAddressFixture[] { address1, address2 });
testGetVendorDefaultAddress(null, addresses, "RM", "BL");
}
public void testGetVendorDefaultAddress_test5() {
addresses = setupAddresses(new VendorAddressFixture[] { address1, address2, address3, address4 });
testGetVendorDefaultAddress(address3.vendorAddressGeneratedIdentifier, addresses, "RM", "BL");
}
public void testGetVendorDefaultAddress_test6() {
addresses = setupAddresses(new VendorAddressFixture[] { address1, address2, address4, address7 });
testGetVendorDefaultAddress(address7.vendorAddressGeneratedIdentifier, addresses, "RM", "SB");
}
private List setupAddresses(VendorAddressFixture[] fixtures) {
addresses = new ArrayList();
for (VendorAddressFixture fixture : fixtures) {
addresses.add(fixture.createAddress());
}
return addresses;
}
public void testNoRouteSignificantChangeOccurred_Complete_No_Changes() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.COMPLETE_NO_CHANGES;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertTrue(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Complete_VH_Change() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.COMPLETE_VH_CHANGE;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Complete_VSD1_Change() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.COMPLETE_VSD1_CHANGE;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Complete_VSSC1_Change() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.COMPLETE_VSSC1_CHANGE;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Complete_VA2_Change() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.COMPLETE_VA2_CHANGE;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Null_Olds() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.NULL_OLDS;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Null_News() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.NULL_NEWS;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertFalse(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
public void testNoRouteSignificantChangeOccurred_Null_All() {
VendorRoutingChangesFixture fixture = VendorRoutingChangesFixture.NULL_ALL;
fixture.populate(oldVDtl, oldVHdr, newVDtl, newVHdr);
assertTrue(SpringContext.getBean(VendorService.class).noRouteSignificantChangeOccurred(oldVDtl, oldVHdr, newVDtl, newVHdr));
}
}