Interface AssertDelegateTarget


public interface AssertDelegateTarget
A marker interface that can be used to wrap your assertion within assertThat method for better readability.

Consider the following MyButton and MyButtonAssert classes:

 public class MyButton extends JButton {

  private boolean blinking;

  public boolean isBlinking() { return this.blinking; }

  public void setBlinking(boolean blink) { this.blinking = blink; }

}

private static class MyButtonAssert implements AssertDelegateTarget {

  private MyButton button;
  MyButtonAssert(MyButton button) { this.button = button; }

  void isBlinking() {
    // standard assertion from core Assertions.assertThat
    assertThat(button.isBlinking()).isTrue();
  }

  void isNotBlinking() {
    // standard assertion from core Assertions.assertThat
    assertThat(button.isBlinking()).isFalse();
  }
}
As MyButtonAssert implements AssertDelegateTarget, you can use assertThat(buttonAssert).isBlinking(); instead of buttonAssert.isBlinking(); to have easier to read assertions.
 @Test
public void AssertDelegateTarget_example() {

  MyButton button = new MyButton();
  MyButtonAssert buttonAssert = new MyButtonAssert(button);

  // you can encapsulate MyButtonAssert assertions methods within assertThat
  assertThat(buttonAssert).isNotBlinking(); // same as : buttonAssert.isNotBlinking();

  button.setBlinking(true);

  assertThat(buttonAssert).isBlinking(); // same as : buttonAssert.isBlinking();
}
Author:
Christian Rösch