BAEL-5209 example with JUnit5, Hamcrest and AssertJ

This commit is contained in:
Trixi Turny 2021-11-04 18:15:45 +00:00
parent 41298ffcf7
commit 86ab50684b
6 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,15 @@
package com.baeldung.object.type;
public class Deciduous implements Tree {
private String name;
public Deciduous(String name) {
this.name = name;
}
@Override
public boolean isEvergreen() {
return false;
}
}

View File

@ -0,0 +1,16 @@
package com.baeldung.object.type;
public class Evergreen implements Tree {
private String name;
public Evergreen(String name) {
this.name = name;
}
@Override
public boolean isEvergreen() {
return true;
}
}

View File

@ -0,0 +1,6 @@
package com.baeldung.object.type;
public interface Tree {
public boolean isEvergreen();
}

View File

@ -0,0 +1,19 @@
package com.baeldung.object.type;
import java.util.List;
public class TreeSorter {
protected Tree sortTree(String name) {
final List<String> deciduous = List.of("Beech", "Birch", "Ash", "Whitebeam", "Hornbeam", "Hazel & Willow");
final List<String> evergreen = List.of("Cedar", "Holly", "Laurel", "Olive", "Pine");
if (deciduous.contains(name)) {
return new Deciduous(name);
} else if (evergreen.contains(name)) {
return new Evergreen(name);
} else {
throw new RuntimeException("Tree could not be classified");
}
}
}

View File

@ -0,0 +1,22 @@
package com.baeldung.object.type;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
class TreeSorterAssertJUnitTest {
private final TreeSorter tested = new TreeSorter();
@Test
public void sortTreeShouldReturnEvergreen_WhenPineIsPassed() {
Tree tree = tested.sortTree("Pine");
assertThat(tree).isExactlyInstanceOf(Evergreen.class);
}
@Test
public void sortTreeShouldReturnDecidious_WhenBirchIsPassed() {
Tree tree = tested.sortTree("Birch");
assertThat(tree).hasSameClassAs(new Deciduous("Birch"));
}
}

View File

@ -0,0 +1,28 @@
package com.baeldung.object.type;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
class TreeSorterHamcrestUnitTest {
private final TreeSorter tested = new TreeSorter();
@Test
public void sortTreeShouldReturnEvergreen_WhenPineIsPassed() {
Tree tree = tested.sortTree("Pine");
//with JUnit assertEquals:
assertEquals(tree.getClass(), Evergreen.class);
//with Hamcrest instanceOf:
assertThat(tree, instanceOf(Evergreen.class));
}
@Test
public void sortTreeShouldReturnDecidious_WhenBirchIsPassed() {
Tree tree = tested.sortTree("Birch");
assertThat(tree, instanceOf(Deciduous.class));
}
}