/* * Copyright 2015-2017 the original author or authors. * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution and is available at * * http://www.eclipse.org/legal/epl-v10.html */ package org.junit.jupiter.api; import static org.junit.jupiter.api.AssertionTestUtils.assertMessageEndsWith; import static org.junit.jupiter.api.AssertionTestUtils.assertMessageStartsWith; import static org.junit.jupiter.api.AssertionTestUtils.expectAssertionFailedError; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import org.opentest4j.AssertionFailedError; /** * Unit tests for JUnit Jupiter {@link Assertions}. * * @since 5.0 */ class AssertionsAssertNotEqualsTests { @Test void assertNotEqualsWithNullVsObject() { assertNotEquals(null, "foo"); } @Test void assertNotEqualsWithObjectVsNull() { assertNotEquals("foo", null); } @Test void assertNotEqualsWithDifferentObjects() { assertNotEquals(new Object(), new Object()); } @Test void assertNotEqualsWithEquivalentStringsAndMessage() { try { assertNotEquals(new String("foo"), new String("foo"), "test"); expectAssertionFailedError(); } catch (AssertionFailedError ex) { assertMessageStartsWith(ex, "test"); assertMessageEndsWith(ex, "expected: not equal but was: <foo>"); } } @Test void assertNotEqualsWithEquivalentStringsAndMessageSupplier() { try { assertNotEquals(new String("foo"), new String("foo"), () -> "test"); expectAssertionFailedError(); } catch (AssertionFailedError ex) { assertMessageStartsWith(ex, "test"); assertMessageEndsWith(ex, "expected: not equal but was: <foo>"); } } @Test void assertNotEqualsInvokesEqualsMethodForIdenticalObjects() { Object obj = new EqualsThrowsExceptionClass(); assertThrows(NumberFormatException.class, () -> assertNotEquals(obj, obj)); } private static class EqualsThrowsExceptionClass { @Override public boolean equals(Object obj) { throw new NumberFormatException(); } } }