BAEL-4991 added in code for Java 9 private method introduction (#10884)
* BAEL-4991 added in code for Java 9 private method introduction * BAEL-4991 added unit tests for java 9 private methods in interface article Co-authored-by: Liam Garvie <liamgarvie@Liams-MacBook-Pro.local>
This commit is contained in:
parent
a8890ebdca
commit
541faa3a97
|
@ -0,0 +1,10 @@
|
|||
package com.baeldung.java9.interfaces;
|
||||
|
||||
public class CustomFoo implements Foo {
|
||||
|
||||
public static void main(String... args) {
|
||||
Foo customFoo = new CustomFoo();
|
||||
customFoo.bar(); // 'Hello world!'
|
||||
Foo.buzz(); // 'Hello static world!'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.baeldung.java9.interfaces;
|
||||
|
||||
public interface Foo {
|
||||
|
||||
public default void bar() {
|
||||
System.out.print("Hello");
|
||||
baz();
|
||||
}
|
||||
|
||||
public static void buzz() {
|
||||
System.out.print("Hello");
|
||||
staticBaz();
|
||||
}
|
||||
|
||||
private void baz() {
|
||||
System.out.print(" world!");
|
||||
}
|
||||
|
||||
private static void staticBaz() {
|
||||
System.out.print(" static world!");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package com.baeldung.java9.interfaces;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class CustomFooUnitTest {
|
||||
private ByteArrayOutputStream outContent = new ByteArrayOutputStream();
|
||||
private PrintStream originalOut = System.out;
|
||||
|
||||
@BeforeEach
|
||||
void setup() {
|
||||
System.setOut(new PrintStream(outContent));
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
System.setOut(originalOut);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenACustomFooObject_whenCallingDefaultMethodBar_thenExpectedStringIsWrittenToSystemOut() {
|
||||
CustomFoo customFoo = new CustomFoo();
|
||||
customFoo.bar();
|
||||
assertThat(outContent.toString()).isEqualTo("Hello world!");
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAFooInterface_whenCallingStaticMethodBuzz_thenExpectedStringIsWrittenToSystemOut() {
|
||||
Foo.buzz();
|
||||
assertThat(outContent.toString()).isEqualTo("Hello static world!");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue