/* * Copyright (c) 2011 Google, Inc. * * 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.google.common.truth; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assert_; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** * Tests for introspective Subject behaviour. * * @author Christian Gruber (cgruber@israfil.net) */ @RunWith(JUnit4.class) public class ClassSubjectTest { @Test public void testIsAssignableTo_same() { assertThat(String.class).isAssignableTo(String.class); } @Test public void testIsAssignableTo_parent() { assertThat(String.class).isAssignableTo(Object.class); assertThat(NullPointerException.class).isAssignableTo(Exception.class); } @Test public void testIsAssignableTo_reversed() { try { assertThat(Object.class).isAssignableTo(String.class); assert_().fail("Should have thrown an assertion error."); } catch (AssertionError expected) { assertThat(expected) .hasMessageThat() .isEqualTo( "Not true that <class java.lang.Object> " + "is assignable to <class java.lang.String>"); } } @Test public void testIsAssignableTo_reversedDifferentTypes() { try { assertThat(String.class).isAssignableTo(Exception.class); assert_().fail("Should have thrown an assertion error."); } catch (AssertionError expected) { assertThat(expected) .hasMessageThat() .isEqualTo( "Not true that <class java.lang.String> " + "is assignable to <class java.lang.Exception>"); } } }