AMLSim
/
jars
/junit5-r5.10.2
/documentation
/src
/test
/java
/example
/defaultmethods
/ComparableContract.java
/* | |
* Copyright 2015-2023 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 v2.0 which | |
* accompanies this distribution and is available at | |
* | |
* https://www.eclipse.org/legal/epl-v20.html | |
*/ | |
package example.defaultmethods; | |
import static org.junit.jupiter.api.Assertions.assertEquals; | |
import static org.junit.jupiter.api.Assertions.assertTrue; | |
import org.junit.jupiter.api.Test; | |
// tag::user_guide[] | |
public interface ComparableContract<T extends Comparable<T>> extends Testable<T> { | |
T createSmallerValue(); | |
default void returnsZeroWhenComparedToItself() { | |
T value = createValue(); | |
assertEquals(0, value.compareTo(value)); | |
} | |
default void returnsPositiveNumberWhenComparedToSmallerValue() { | |
T value = createValue(); | |
T smallerValue = createSmallerValue(); | |
assertTrue(value.compareTo(smallerValue) > 0); | |
} | |
default void returnsNegativeNumberWhenComparedToLargerValue() { | |
T value = createValue(); | |
T smallerValue = createSmallerValue(); | |
assertTrue(smallerValue.compareTo(value) < 0); | |
} | |
} | |
// end::user_guide[] | |