blob: 5f16c8451bb2470d4466af310f3f03ecc2e80daf [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.tests.validation;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Vector;
import org.eclipse.persistence.descriptors.RelationalDescriptor;
import org.eclipse.persistence.exceptions.DescriptorException;
import org.eclipse.persistence.exceptions.EclipseLinkException;
import org.eclipse.persistence.internal.queries.IndirectListContainerPolicy;
import org.eclipse.persistence.mappings.DirectToFieldMapping;
import org.eclipse.persistence.mappings.ForeignReferenceMapping;
import org.eclipse.persistence.mappings.OneToOneMapping;
import org.eclipse.persistence.sessions.DatabaseRecord;
import org.eclipse.persistence.testing.framework.AutoVerifyTestCase;
import org.eclipse.persistence.testing.framework.TestErrorException;
//used for Method.class
//Created by Ian Reid
//Date: Mar 5, 2k3
//non-standard Test
//This class simply calls the static method to get the code coverage for problem
//for untestable code (i.e. method is never called in source code)
public class ConstructingDescriptorExceptionTests extends AutoVerifyTestCase {
public ConstructingDescriptorExceptionTests() {
setDescription("This creates all untestable Descriptor Exceptions by calling each static method contructor for Code Coverage (methods and error codes could be Deprecated)");
}
Vector testResults = new Vector();
EclipseLinkException caughtException = null;
@Override
public void test() throws NoSuchMethodException {
try {
Class<ConstructingDescriptorExceptionTests> javaClass = ConstructingDescriptorExceptionTests.class;
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaClass(javaClass);
TestErrorException dummyException = new TestErrorException("no ERROR");
DirectToFieldMapping mapping = new DirectToFieldMapping();
ForeignReferenceMapping mappingFR = new OneToOneMapping();
IndirectListContainerPolicy policy = new IndirectListContainerPolicy();
Object object = new Object();
DatabaseRecord row = new DatabaseRecord();
Class[] parmClasses = { };
Method method = javaClass.getDeclaredMethod("test", parmClasses);
DescriptorException descriptorException;
descriptorException = DescriptorException.javaClassNotSpecified(descriptor);
if (descriptorException.getErrorCode() != 39)
testResults.add("DescriptorException.javaClassNotSpecified");
// else testResults.add("Passed");
descriptorException = DescriptorException.writeLockFieldInChildDescriptor(descriptor);
if (descriptorException.getErrorCode() != 109)
testResults.add("DescriptorException.writeLockFieldInChildDescriptor");
// else testResults.add("Passed");
descriptorException = DescriptorException.childDoesNotDefineAbstractQueryKeyOfParent(descriptor, descriptor, "dummy");
if (descriptorException.getErrorCode() != 120)
testResults.add("DescriptorException.childDoesNotDefineAbstractQueryKeyOfParent");
// else testResults.add("Passed");
descriptorException = DescriptorException.missingIndirectContainerConstructor(javaClass);
if (descriptorException.getErrorCode() != 145)
testResults.add("DescriptorException.missingIndirectContainerConstructor");
// else testResults.add("Passed");
descriptorException = DescriptorException.couldNotInstantiateIndirectContainerClass(javaClass, dummyException);
if (descriptorException.getErrorCode() != 146)
testResults.add("DescriptorException.couldNotInstantiateIndirectContainerClass");
// else testResults.add("Passed");
descriptorException = DescriptorException.invalidContainerPolicy(policy, javaClass);
if (descriptorException.getErrorCode() != 147)
testResults.add("DescriptorException.invalidContainerPolicy");
// else testResults.add("Passed");
descriptorException = DescriptorException.invalidUseOfNoIndirection(mapping);
if (descriptorException.getErrorCode() != 149)
testResults.add("DescriptorException.invalidUseOfNoIndirection");
// else testResults.add("Passed");
descriptorException = DescriptorException.proxyIndirectionNotAvailable(mapping);
if (descriptorException.getErrorCode() != 159)
testResults.add("DescriptorException.proxyIndirectionNotAvailable");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccesstWhileGettingValueThruInstanceVaraibleAccessor("attributeName", "objectName", dummyException);
if (descriptorException.getErrorCode() != 13)
testResults.add("DescriptorException.illegalAccesstWhileGettingValueThruInstanceVaraibleAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileCloning(object, "methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 14)
testResults.add("DescriptorException.illegalAccessWhileCloning");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileEventExecution("eventMethodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 16)
testResults.add("DescriptorException.illegalAccessWhileEventExecution");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileGettingValueThruMethodAccessor("methodName", "objectName", dummyException);
if (descriptorException.getErrorCode() != 17)
testResults.add("DescriptorException.illegalAccessWhileGettingValueThruMethodAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileInstantiatingMethodBasedProxy(dummyException);
if (descriptorException.getErrorCode() != 18)
testResults.add("DescriptorException.illegalAccessWhileInstantiatingMethodBasedProxy");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileInvokingAttributeMethod(mapping, dummyException);
if (descriptorException.getErrorCode() != 19)
testResults.add("DescriptorException.illegalAccessWhileInvokingAttributeMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileInvokingFieldToMethod("methodName", mapping, dummyException);
if (descriptorException.getErrorCode() != 20)
testResults.add("DescriptorException.illegalAccessWhileInvokingFieldToMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileInvokingRowExtractionMethod(row, method, descriptor, dummyException);
if (descriptorException.getErrorCode() != 21)
testResults.add("DescriptorException.illegalAccessWhileInvokingRowExtractionMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileMethodInstantiation("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 22)
testResults.add("DescriptorException.illegalAccessWhileMethodInstantiation");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileObsoleteEventExecute("eventMethodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 23)
testResults.add("DescriptorException.illegalAccessWhileObsoleteEventExecute");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileSettingValueThruInstanceVariableAccessor("attributeName", "objectName", object, dummyException);
if (descriptorException.getErrorCode() != 24)
testResults.add("DescriptorException.illegalAccessWhileSettingValueThruInstanceVariableAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileSettingValueThruMethodAccessor("setMethodName", object, dummyException);
if (descriptorException.getErrorCode() != 25)
testResults.add("DescriptorException.illegalAccessWhileSettingValueThruMethodAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.missingClassForIndicatorFieldValue(object, descriptor);
if (descriptorException.getErrorCode() != 43)
testResults.add("DescriptorException.missingClassForIndicatorFieldValue");
// else testResults.add("Passed");
descriptorException = DescriptorException.missingClassIndicatorField(row, descriptor);
if (descriptorException.getErrorCode() != 44)
testResults.add("DescriptorException.missingClassIndicatorField");
// else testResults.add("Passed");
descriptorException = DescriptorException.notDeserializable(mapping, dummyException);
if (descriptorException.getErrorCode() != 66)
testResults.add("DescriptorException.notDeserializable");
// else testResults.add("Passed");
descriptorException = DescriptorException.notSerializable(mapping, dummyException);
if (descriptorException.getErrorCode() != 67)
testResults.add("DescriptorException.notSerializable");
// else testResults.add("Passed");
descriptorException = DescriptorException.nullPointerWhileSettingValueThruInstanceVariableAccessor("attributeName", object, dummyException);
if (descriptorException.getErrorCode() != 71)
testResults.add("DescriptorException.nullPointerWhileSettingValueThruInstanceVariableAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.nullPointerWhileSettingValueThruMethodAccessor("setMethodName", object, dummyException);
if (descriptorException.getErrorCode() != 72)
testResults.add("DescriptorException.nullPointerWhileSettingValueThruMethodAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityOnFindMethod("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 82)
testResults.add("DescriptorException.securityOnFindMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityOnFindObsoleteMethod("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 83)
testResults.add("DescriptorException.securityOnFindObsoleteMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityOnInitializingAttributeMethod("attributeMethodName", mapping, dummyException);
if (descriptorException.getErrorCode() != 84)
testResults.add("DescriptorException.securityOnInitializingAttributeMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileConvertingToMethod("methodName", mapping, dummyException);
if (descriptorException.getErrorCode() != 85)
testResults.add("DescriptorException.securityWhileConvertingToMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileInitializingAttributesInInstanceVariableAccessor("attributeName", "javaClassName", dummyException);
if (descriptorException.getErrorCode() != 86)
testResults.add("DescriptorException.securityWhileInitializingAttributesInInstanceVariableAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileInitializingAttributesInMethodAccessor("setMethodName", "getMethodName", "javaClassName");
if (descriptorException.getErrorCode() != 87)
testResults.add("DescriptorException.securityWhileInitializingAttributesInMethodAccessor");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileInitializingClassExtractionMethod("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 88)
testResults.add("DescriptorException.securityWhileInitializingClassExtractionMethod");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileInitializingCopyPolicy("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 89)
testResults.add("DescriptorException.securityWhileInitializingCopyPolicy");
// else testResults.add("Passed");
descriptorException = DescriptorException.securityWhileInitializingInstantiationPolicy("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 90)
testResults.add("DescriptorException.securityWhileInitializingInstantiationPolicy");
// else testResults.add("Passed");
descriptorException = DescriptorException.sizeMismatchOfForeignKeys(mappingFR);
if (descriptorException.getErrorCode() != 92)
testResults.add("DescriptorException.sizeMismatchOfForeignKeys");
// else testResults.add("Passed");
descriptorException = DescriptorException.targetForeignKeysSizeMismatch(mappingFR);
if (descriptorException.getErrorCode() != 96)
testResults.add("DescriptorException.targetForeignKeysSizeMismatch");
// else testResults.add("Passed");
descriptorException = DescriptorException.multipleTableInsertOrderMismatch(descriptor);
if (descriptorException.getErrorCode() != 143)
testResults.add("DescriptorException.multipleTableInsertOrderMismatch");
// else testResults.add("Passed");
descriptorException = DescriptorException.variableOneToOneMappingIsNotDefinedProperly(mapping, descriptor, "targetKeyName");
if (descriptorException.getErrorCode() != 166)
testResults.add("DescriptorException.variableOneToOneMappingIsNotDefinedProperly");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileConstructorInstantiationOfFactory(descriptor, dummyException);
if (descriptorException.getErrorCode() != 170)
testResults.add("DescriptorException.illegalAccessWhileConstructorInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.noSuchMethodWhileConstructorInstantiationOfFactory(descriptor, dummyException);
if (descriptorException.getErrorCode() != 172)
testResults.add("DescriptorException.noSuchMethodWhileConstructorInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.nullPointerWhileConstructorInstantiationOfFactory(descriptor, dummyException);
if (descriptorException.getErrorCode() != 173)
testResults.add("DescriptorException.nullPointerWhileConstructorInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.illegalAccessWhileMethodInstantiationOfFactory("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 174)
testResults.add("DescriptorException.illegalAccessWhileMethodInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.targetInvocationWhileMethodInstantiationOfFactory("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 175)
testResults.add("DescriptorException.targetInvocationWhileMethodInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.nullPointerWhileMethodInstantiationOfFactory("methodName", descriptor, dummyException);
if (descriptorException.getErrorCode() != 176)
testResults.add("DescriptorException.nullPointerWhileMethodInstantiationOfFactory");
// else testResults.add("Passed");
descriptorException = DescriptorException.mappingForAttributeIsMissing("attributeName", descriptor);
if (descriptorException.getErrorCode() != 177)
testResults.add("DescriptorException.mappingForAttributeIsMissing");
// else testResults.add("Passed");
descriptorException = DescriptorException.attributeMappingIsMissingForEntityBean("attributeName", "beanName");
if (descriptorException.getErrorCode() != 178)
testResults.add("DescriptorException.attributeMappingIsMissingForEntityBean");
// else testResults.add("Passed");
} catch (EclipseLinkException exception) {
caughtException = exception;
}
}
@Override
protected void verify() {
if (caughtException != null) {
throw new TestErrorException("An exception was thrown:" + org.eclipse.persistence.internal.helper.Helper.cr() + "caught exception was not null! \n\n[EXPECTING] no Exceptions ");
}
Iterator iteratorResults = testResults.iterator();
while (iteratorResults.hasNext()) {
String item = (String)iteratorResults.next();
if (!item.equalsIgnoreCase("passed")) {
throw new TestErrorException("The proper exception was not created:" + org.eclipse.persistence.internal.helper.Helper.cr() + "[Problem with METHOD] " + item);
}
}
}
}