/******************************************************************************* * Copyright 2013 SAP AG * * Licensed 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 com.sap.core.odata.core.exception; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.sap.core.odata.api.edm.EdmException; import com.sap.core.odata.api.edm.EdmLiteralException; import com.sap.core.odata.api.edm.EdmSimpleTypeException; import com.sap.core.odata.api.ep.EntityProviderException; import com.sap.core.odata.api.exception.ODataBadRequestException; import com.sap.core.odata.api.exception.ODataConflictException; import com.sap.core.odata.api.exception.ODataException; import com.sap.core.odata.api.exception.ODataForbiddenException; import com.sap.core.odata.api.exception.ODataHttpException; import com.sap.core.odata.api.exception.ODataMessageException; import com.sap.core.odata.api.exception.ODataMethodNotAllowedException; import com.sap.core.odata.api.exception.ODataNotAcceptableException; import com.sap.core.odata.api.exception.ODataNotFoundException; import com.sap.core.odata.api.exception.ODataNotImplementedException; import com.sap.core.odata.api.exception.ODataPreconditionFailedException; import com.sap.core.odata.api.exception.ODataPreconditionRequiredException; import com.sap.core.odata.api.exception.ODataServiceUnavailableException; import com.sap.core.odata.api.exception.ODataUnsupportedMediaTypeException; import com.sap.core.odata.api.uri.UriNotMatchingException; import com.sap.core.odata.api.uri.UriSyntaxException; import com.sap.core.odata.api.uri.expression.ExceptionVisitExpression; import com.sap.core.odata.api.uri.expression.ExpressionParserException; import com.sap.core.odata.core.uri.expression.ExpressionParserInternalError; import com.sap.core.odata.core.uri.expression.FilterParserExceptionImpl; import com.sap.core.odata.core.uri.expression.TokenizerException; import com.sap.core.odata.core.uri.expression.TokenizerExpectError; import com.sap.core.odata.testutil.fit.BaseTest; import com.sap.core.odata.testutil.helper.ODataMessageTextVerifier; /** * @author SAP AG */ public class ODataExceptionTest extends BaseTest { @Test public void noCause() { ODataException exception = new ODataException("Some message."); assertFalse(exception.isCausedByHttpException()); } @Test public void nullPointerExceptionCause() { ODataException exception = new ODataException("Some message.", new NullPointerException()); assertFalse(exception.isCausedByHttpException()); } @Test public void oDataContextedCause() { ODataException exception = new ODataException("Some message.", new ODataNotFoundException(ODataNotFoundException.ENTITY)); assertTrue(exception.isCausedByHttpException()); } @Test public void oDataContextedCauseLayer3() { ODataException exception = new ODataException("Some message.", new IllegalArgumentException( new ODataNotFoundException(ODataNotFoundException.ENTITY))); assertTrue(exception.isCausedByHttpException()); } //The following tests verify whether all fields of type {@link MessageReference} of //the tested (Exception) class are provided in the <b>i18n.properties</b> file. @Test public void messagesOfODataMessageExceptions() { ODataMessageTextVerifier.TestClass(ODataMessageException.class); ODataMessageTextVerifier.TestClass(UriNotMatchingException.class); ODataMessageTextVerifier.TestClass(UriSyntaxException.class); ODataMessageTextVerifier.TestClass(ExceptionVisitExpression.class); ODataMessageTextVerifier.TestClass(EdmLiteralException.class); ODataMessageTextVerifier.TestClass(EdmException.class); ODataMessageTextVerifier.TestClass(EdmSimpleTypeException.class); ODataMessageTextVerifier.TestClass(EntityProviderException.class); ODataMessageTextVerifier.TestClass(ODataHttpException.class); ODataMessageTextVerifier.TestClass(ODataBadRequestException.class); ODataMessageTextVerifier.TestClass(ODataConflictException.class); ODataMessageTextVerifier.TestClass(ODataForbiddenException.class); ODataMessageTextVerifier.TestClass(ODataNotFoundException.class); ODataMessageTextVerifier.TestClass(ODataMethodNotAllowedException.class); ODataMessageTextVerifier.TestClass(ODataNotAcceptableException.class); ODataMessageTextVerifier.TestClass(ODataPreconditionFailedException.class); ODataMessageTextVerifier.TestClass(ODataPreconditionRequiredException.class); ODataMessageTextVerifier.TestClass(ODataServiceUnavailableException.class); ODataMessageTextVerifier.TestClass(ODataUnsupportedMediaTypeException.class); ODataMessageTextVerifier.TestClass(ODataNotImplementedException.class); ODataMessageTextVerifier.TestClass(ExpressionParserException.class); ODataMessageTextVerifier.TestClass(FilterParserExceptionImpl.class); ODataMessageTextVerifier.TestClass(ExpressionParserInternalError.class); ODataMessageTextVerifier.TestClass(TokenizerException.class); ODataMessageTextVerifier.TestClass(TokenizerExpectError.class); } }