Package com.salesforce.dataloader.dyna

Source Code of com.salesforce.dataloader.dyna.SObjectReferenceConverterTest

/*
* Copyright (c) 2012, salesforce.com, inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
*    Redistributions of source code must retain the above copyright notice, this list of conditions and the
*    following disclaimer.
*
*    Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
*    the following disclaimer in the documentation and/or other materials provided with the distribution.
*
*    Neither the name of salesforce.com, inc. nor the names of its contributors may be used to endorse or
*    promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package com.salesforce.dataloader.dyna;

import com.salesforce.dataloader.ConfigTestBase;
import com.salesforce.dataloader.TestBase;
import com.sforce.soap.partner.sobject.SObject;
import com.sforce.ws.ConnectionException;
import org.junit.Assert;
import org.junit.Test;

import java.util.Calendar;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

public class SObjectReferenceConverterTest extends ConfigTestBase {

    @Test
    public void testSObjectReferenceConverter() throws ConnectionException {
        SObjectReferenceConverter refConverter = new SObjectReferenceConverter();
        SObjectReference ref;

        getController().login();
        getController().setReferenceDescribes();

        // null test
        ref = (SObjectReference)refConverter.convert(null, null);
        assertTrue(ref.isNull());

        // empty test
        ref = (SObjectReference)refConverter.convert(null, "");
        assertTrue(ref.isNull());

        // test getting SObjectReference back - string
        SObjectReference testRefStr = new SObjectReference("12345");
        ref = (SObjectReference)refConverter.convert(null, testRefStr.getReferenceExtIdValue());
        assertEquals(testRefStr, ref);

        // test getting SObjectReference back - number
        SObjectReference testRefNbr = new SObjectReference(12345);
        ref = (SObjectReference)refConverter.convert(null, testRefNbr.getReferenceExtIdValue());
        assertEquals(testRefNbr, ref);

        // test getting SObjectReference back - date
        SObjectReference testRefDate = new SObjectReference(Calendar.getInstance().getTime());
        ref = (SObjectReference)refConverter.convert(null, testRefDate.getReferenceExtIdValue());
        assertEquals(testRefDate, ref);

        // test validity of creating XML structure for foreign key ref
        testValidSObjectReference("12345", "Parent", true);
        testValidSObjectReference("12345", "Bogus", false);
    }

    private void testValidSObjectReference(String refValue, String relationshipName, boolean expectSuccess) {
        SObjectReference ref = new SObjectReference(refValue);
        SObject sObj = new SObject();
        String fkFieldName = TestBase.DEFAULT_ACCOUNT_EXT_ID_FIELD;

        try {
            ref.addReferenceToSObject(getController(), sObj, ObjectField.formatAsString("Parent",
                    TestBase.DEFAULT_ACCOUNT_EXT_ID_FIELD));

            SObject child = (SObject)sObj.getChild(relationshipName);
            boolean succeeded = child != null && child.getField(fkFieldName) != null && child.getField(fkFieldName)
                    .equals(refValue);
            if (expectSuccess && !succeeded || !expectSuccess && succeeded) {
                Assert.fail();
            }
        } catch (Exception e) {
            if (expectSuccess) {
                Assert.fail();
            }
        }
    }
}
TOP

Related Classes of com.salesforce.dataloader.dyna.SObjectReferenceConverterTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.