/core/src/test/java/org/jclouds/util/Throwables2Test.java
https://github.com/richardcloudsoft/legacy-jclouds · Java · 269 lines · 210 code · 38 blank · 21 comment · 0 complexity · f9137bc1d06071e12e6dfdd64632a5fc MD5 · raw file
- /**
- * Licensed to jclouds, Inc. (jclouds) under one or more
- * contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. jclouds licenses this file
- * to you 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 org.jclouds.util;
- import static org.easymock.EasyMock.createMock;
- import static org.easymock.EasyMock.createNiceMock;
- import static org.jclouds.reflect.Reflection2.typeToken;
- import static org.jclouds.util.Throwables2.getFirstThrowableOfType;
- import static org.jclouds.util.Throwables2.propagateIfPossible;
- import static org.testng.Assert.assertEquals;
- import java.io.IOException;
- import java.net.SocketException;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.Future;
- import java.util.concurrent.TimeoutException;
- import org.jclouds.concurrent.TransformParallelException;
- import org.jclouds.http.HttpCommand;
- import org.jclouds.http.HttpResponseException;
- import org.jclouds.rest.AuthorizationException;
- import org.jclouds.rest.InsufficientResourcesException;
- import org.jclouds.rest.ResourceNotFoundException;
- import org.testng.annotations.Test;
- import com.google.common.collect.ImmutableList;
- import com.google.common.collect.ImmutableMap;
- import com.google.common.collect.ImmutableSet;
- import com.google.common.reflect.TypeToken;
- import com.google.inject.CreationException;
- import com.google.inject.ProvisionException;
- import com.google.inject.spi.Message;
- /**
- * @author Adrian Cole
- */
- @Test
- public class Throwables2Test {
- public void testGetFirstThrowableOfTypeSubclass() {
- SocketException aex = createMock(SocketException.class);
- assertEquals(getFirstThrowableOfType(aex, IOException.class), aex);
- }
- public void testGetFirstThrowableOfTypeOuter() {
- AuthorizationException aex = createMock(AuthorizationException.class);
- assertEquals(getFirstThrowableOfType(aex, AuthorizationException.class), aex);
- }
- public void testGetCause() {
- AuthorizationException aex = createMock(AuthorizationException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- ProvisionException pex = new ProvisionException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeInner() {
- AuthorizationException aex = createMock(AuthorizationException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- ProvisionException pex = new ProvisionException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeFail() {
- TimeoutException aex = createMock(TimeoutException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- ProvisionException pex = new ProvisionException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), null);
- }
- public void testGetFirstThrowableOfTypeWhenCauseIsNull() {
- Message message = new Message(ImmutableList.of(), "test", null);
- ProvisionException pex = new ProvisionException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), null);
- }
- public void testGetCauseCreation() {
- AuthorizationException aex = createMock(AuthorizationException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- CreationException pex = new CreationException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeInnerCreation() {
- AuthorizationException aex = createMock(AuthorizationException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- CreationException pex = new CreationException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeFailCreation() {
- TimeoutException aex = createMock(TimeoutException.class);
- Message message = new Message(ImmutableList.of(), "test", aex);
- CreationException pex = new CreationException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), null);
- }
- public void testGetFirstThrowableOfTypeWhenCauseIsNullCreation() {
- Message message = new Message(ImmutableList.of(), "test", null);
- CreationException pex = new CreationException(ImmutableSet.of(message));
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), null);
- }
- public void testGetCauseTransformParallel() {
- Exception aex = createMock(AuthorizationException.class);
- TransformParallelException pex = new TransformParallelException(ImmutableMap.<Object, Future<?>> of(),
- ImmutableMap.of("bad", aex), "test");
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeInnerTransformParallel() {
- Exception aex = createMock(AuthorizationException.class);
- TransformParallelException pex = new TransformParallelException(ImmutableMap.<Object, Future<?>> of(),
- ImmutableMap.of("bad", (Exception) new ExecutionException(aex)), "test");
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeOuterTransformParallel() {
- Exception aex = createMock(AuthorizationException.class);
- TransformParallelException pex = new TransformParallelException(ImmutableMap.<Object, Future<?>> of(),
- ImmutableMap.of("bad", (Exception) aex), "test");
- assertEquals(getFirstThrowableOfType(new ExecutionException(pex), AuthorizationException.class), aex);
- }
- public void testGetFirstThrowableOfTypeFailTransformParallel() {
- Exception aex = createMock(TimeoutException.class);
- TransformParallelException pex = new TransformParallelException(ImmutableMap.<Object, Future<?>> of(),
- ImmutableMap.of("bad", aex), "test");
- assertEquals(getFirstThrowableOfType(pex, AuthorizationException.class), null);
- }
- @Test(expectedExceptions = TestException.class)
- public void testPropagateExceptionThatsInList() throws Throwable {
- Exception e = new TestException();
- propagateIfPossible(e, ImmutableSet.<TypeToken<? extends Throwable>> of(typeToken(TestException.class)));
- }
- @Test(expectedExceptions = TestException.class)
- public void testPropagateWrappedExceptionThatsInList() throws Throwable {
- Exception e = new TestException();
- propagateIfPossible(new RuntimeException(e),
- ImmutableSet.<TypeToken<? extends Throwable>> of(typeToken(TestException.class)));
- }
- public void testPropagateIfPossibleDoesnThrowExceptionNotInList() throws Throwable {
- Exception e = new TestException();
- propagateIfPossible(e, ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = IllegalStateException.class)
- public void testPropagateStandardExceptionIllegalStateException() throws Throwable {
- Exception e = new IllegalStateException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testPropagateStandardExceptionIllegalArgumentException() throws Throwable {
- Exception e = new IllegalArgumentException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = UnsupportedOperationException.class)
- public void testPropagateStandardExceptionUnsupportedOperationException() throws Throwable {
- Exception e = new UnsupportedOperationException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = AssertionError.class)
- public void testPropagateStandardExceptionAssertionError() throws Throwable {
- AssertionError e = new AssertionError();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = AuthorizationException.class)
- public void testPropagateStandardExceptionAuthorizationException() throws Throwable {
- Exception e = new AuthorizationException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = AuthorizationException.class)
- public void testPropagateProvisionExceptionAuthorizationException() throws Throwable {
- Exception e = new AuthorizationException();
- propagateIfPossible(
- new ProvisionException(ImmutableSet.of(new Message(ImmutableList.of(), "Error in custom provider", e))),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = AuthorizationException.class)
- public void testPropagateCreationExceptionAuthorizationException() throws Throwable {
- Exception e = new AuthorizationException();
- propagateIfPossible(
- new CreationException(ImmutableSet.of(new Message(ImmutableList.of(), "Error in custom provider", e))),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = InsufficientResourcesException.class)
- public void testPropagateStandardExceptionInsufficientResourcesException() throws Throwable {
- Exception e = new InsufficientResourcesException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = ResourceNotFoundException.class)
- public void testPropagateStandardExceptionResourceNotFoundException() throws Throwable {
- Exception e = new ResourceNotFoundException();
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = IllegalStateException.class)
- public void testPropagateStandardExceptionIllegalStateExceptionNestedInHttpResponseException() throws Throwable {
- Exception e = new IllegalStateException();
- propagateIfPossible(new HttpResponseException("goo", createNiceMock(HttpCommand.class), null, e),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testPropagateStandardExceptionIllegalArgumentExceptionNestedInHttpResponseException() throws Throwable {
- Exception e = new IllegalArgumentException();
- propagateIfPossible(new HttpResponseException("goo", createNiceMock(HttpCommand.class), null, e),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = UnsupportedOperationException.class)
- public void testPropagateStandardExceptionUnsupportedOperationExceptionNestedInHttpResponseException()
- throws Throwable {
- Exception e = new UnsupportedOperationException();
- propagateIfPossible(new HttpResponseException("goo", createNiceMock(HttpCommand.class), null, e),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = AuthorizationException.class)
- public void testPropagateStandardExceptionAuthorizationExceptionNestedInHttpResponseException() throws Throwable {
- Exception e = new AuthorizationException();
- propagateIfPossible(new HttpResponseException("goo", createNiceMock(HttpCommand.class), null, e),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = ResourceNotFoundException.class)
- public void testPropagateStandardExceptionResourceNotFoundExceptionNestedInHttpResponseException() throws Throwable {
- Exception e = new ResourceNotFoundException();
- propagateIfPossible(new HttpResponseException("goo", createNiceMock(HttpCommand.class), null, e),
- ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- @Test(expectedExceptions = HttpResponseException.class)
- public void testPropagateStandardExceptionHttpResponseException() throws Throwable {
- Exception e = new HttpResponseException("goo", createNiceMock(HttpCommand.class), null);
- propagateIfPossible(new RuntimeException(e), ImmutableSet.<TypeToken<? extends Throwable>> of());
- }
- static class TestException extends Exception {
- private static final long serialVersionUID = 1L;
- }
- }