blob: 6af78413951074ac2c23c032b9cfcefa51278ee2 [file] [log] [blame]
// Copyright 2016-2019 Yincheng Fang
//
// 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 hessian
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestException(t *testing.T) {
doTestException(t, "throw_throwable", "exception")
doTestException(t, "throw_exception", "exception")
doTestException(t, "throw_MalformedParameterizedTypeException", "MalformedParameterizedType")
doTestException(t, "throw_MalformedParametersException", "MalformedParametersException")
doTestException(t, "throw_TypeNotPresentException", "Type exceptiontype1 not present")
doTestException(t, "throw_WrongMethodTypeException", "WrongMethodTypeException")
doTestException(t, "throw_UndeclaredThrowableException", "UndeclaredThrowableException")
doTestException(t, "throw_runtimeException", "runtimeException")
doTestException(t, "throw_arrayStoreException", "arrayStoreException")
doTestException(t, "throw_classCastException", "classCastException")
doTestException(t, "throw_enumConstantNotPresentException", "test.TestThrowable$TestEnum.enumConstantNotPresentException")
doTestException(t, "throw_illegalMonitorStateException", "illegalMonitorStateException")
doTestException(t, "throw_illegalStateException", "illegalStateException")
doTestException(t, "throw_IOException", "IOException")
doTestException(t, "throw_CloneNotSupportedException", "CloneNotSupportedException")
doTestException(t, "throw_InterruptedException", "InterruptedException")
doTestException(t, "throw_InterruptedIOException", "InterruptedIOException")
doTestException(t, "throw_LambdaConversionException", "LambdaConversionException")
doTestException(t, "throw_UnmodifiableClassException", "UnmodifiableClassException")
doTestException(t, "throw_NullPointerException", "nullPointerException")
doTestException(t, "throw_UncheckedIOException", "uncheckedIOException")
doTestException(t, "throw_FileNotFoundException", "fileNotFoundException")
doTestException(t, "throw_EOFException", "EOFException")
doTestException(t, "throw_SyncFailedException", "syncFailedException")
doTestException(t, "throw_ObjectStreamException", "objectStreamException")
doTestException(t, "throw_WriteAbortedException", "writeAbortedException")
doTestException(t, "throw_InvalidObjectException", "invalidObjectException")
doTestException(t, "throw_StreamCorruptedException", "streamCorruptedException")
doTestException(t, "throw_InvalidClassException", "null; invalidClassException")
doTestException(t, "throw_OptionalDataException", "null")
doTestException(t, "throw_NotActiveException", "notActiveException")
doTestException(t, "throw_NotSerializableException", "notSerializableException")
doTestException(t, "throw_UTFDataFormatException", "UTFDataFormatException")
doTestException(t, "throw_SecurityException", "SecurityException")
doTestException(t, "throw_IllegalArgumentException", "IllegalArgumentException")
doTestException(t, "throw_IllegalThreadStateException", "IllegalThreadStateException")
doTestException(t, "throw_NumberFormatException", "NumberFormatException")
doTestException(t, "throw_IndexOutOfBoundsException", "IndexOutOfBoundsException")
doTestException(t, "throw_ArrayIndexOutOfBoundsException", "ArrayIndexOutOfBoundsException")
doTestException(t, "throw_StringIndexOutOfBoundsException", "StringIndexOutOfBoundsException")
doTestException(t, "throw_IllegalFormatWidthException", "1000")
doTestException(t, "throw_IllegalFormatConversionException", "7 != test.TestThrowable$TestEnum")
doTestException(t, "throw_DuplicateFormatFlagsException", "flags=DuplicateFormatFlagsException")
doTestException(t, "throw_MissingResourceException", "MissingResourceException")
doTestException(t, "throw_ConcurrentModificationException", "ConcurrentModificationException")
doTestException(t, "throw_RejectedExecutionException", "RejectedExecutionException")
doTestException(t, "throw_CompletionException", "java.lang.Throwable: exception")
doTestException(t, "throw_EmptyStackException", "EmptyStackException")
doTestException(t, "throw_IllformedLocaleException", "IllformedLocaleException")
doTestException(t, "throw_NoSuchElementException", "NoSuchElementException")
doTestException(t, "throw_NegativeArraySizeException", "NegativeArraySizeException")
doTestException(t, "throw_UnsupportedOperationException", "UnsupportedOperationException")
doTestException(t, "throw_ArithmeticException", "ArithmeticException")
doTestException(t, "throw_InputMismatchException", "InputMismatchException")
doTestException(t, "throw_ExecutionException", "ExecutionException")
doTestException(t, "throw_InvalidPreferencesFormatException", "InvalidPreferencesFormatException")
doTestException(t, "throw_TimeoutException", "TimeoutException")
doTestException(t, "throw_BackingStoreException", "BackingStoreException")
doTestException(t, "throw_DataFormatException", "DataFormatException")
doTestException(t, "throw_BrokenBarrierException", "BrokenBarrierException")
doTestException(t, "throw_TooManyListenersException", "TooManyListenersException")
doTestException(t, "throw_InvalidPropertiesFormatException", "InvalidPropertiesFormatException")
doTestException(t, "throw_ZipException", "ZipException")
doTestException(t, "throw_JarException", "JarException")
doTestException(t, "throw_IllegalClassFormatException", "IllegalClassFormatException")
doTestException(t, "throw_ReflectiveOperationException", "ReflectiveOperationException")
doTestException(t, "throw_InvocationTargetException", "InvocationTargetException")
doTestException(t, "throw_NoSuchMethodException", "NoSuchMethodException")
doTestException(t, "throw_NoSuchFieldException", "NoSuchFieldException")
doTestException(t, "throw_IllegalAccessException", "IllegalAccessException")
doTestException(t, "throw_ClassNotFoundException", "ClassNotFoundException")
doTestException(t, "throw_InstantiationException", "InstantiationException")
doTestException(t, "throw_DateTimeException", "DateTimeException")
doTestException(t, "throw_UnsupportedTemporalTypeException", "UnsupportedTemporalTypeException")
doTestException(t, "throw_ZoneRulesException", "ZoneRulesException")
doTestException(t, "throw_DateTimeParseException", "DateTimeParseException")
doTestException(t, "throw_FormatterClosedException", "null")
doTestException(t, "throw_CancellationException", "CancellationException")
doTestException(t, "throw_UnknownFormatConversionException", "Conversion = 'UnknownFormatConversionException'")
doTestException(t, "throw_UnknownFormatFlagsException", "Flags = UnknownFormatFlagsException")
doTestException(t, "throw_IllegalFormatFlagsException", "Flags = 'IllegalFormatFlagsException'")
doTestException(t, "throw_IllegalFormatPrecisionException", "1")
doTestException(t, "throw_IllegalFormatCodePointException", "Code point = 0x1")
doTestException(t, "throw_MissingFormatArgumentException", "Format specifier 'MissingFormatArgumentException'")
doTestException(t, "throw_MissingFormatWidthException", "MissingFormatWidthException")
doTestException(t, "throw_DubboGenericException", "DubboGenericException")
doTestException(t, "throw_IncompleteAnnotationException", "java.lang.Override missing element IncompleteAnnotationException")
doTestException(t, "throw_AnnotationTypeMismatchException", "Incorrectly typed data found for annotation element null (Found data of type AnnotationTypeMismatchException)")
}
func doTestException(t *testing.T, method, content string) {
testDecodeFrameworkFunc(t, method, func(r interface{}) {
t.Logf("%#v", r)
assert.Equal(t, content, r.(error).Error())
})
}