[BAEL-5976]: Extract Values using AssertJ in Java (#13105)
JIRA: https://jira.baeldung.com/browse/BAEL-5976
This commit is contained in:
parent
abd9f8a38b
commit
78124d60dd
|
@ -0,0 +1,25 @@
|
|||
package com.baeldung.assertj.extracting;
|
||||
|
||||
class Address {
|
||||
private String street;
|
||||
private String city;
|
||||
private ZipCode zipCode;
|
||||
|
||||
Address(String street, String city, ZipCode zipCode) {
|
||||
this.street = street;
|
||||
this.city = city;
|
||||
this.zipCode = zipCode;
|
||||
}
|
||||
|
||||
public String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public ZipCode getZipCode() {
|
||||
return zipCode;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.baeldung.assertj.extracting;
|
||||
|
||||
class Person {
|
||||
private String firstName;
|
||||
private String lastName;
|
||||
private Address address;
|
||||
|
||||
Person(String firstName, String lastName, Address address) {
|
||||
this.firstName = firstName;
|
||||
this.lastName = lastName;
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstName;
|
||||
}
|
||||
|
||||
public String getLastName() {
|
||||
return lastName;
|
||||
}
|
||||
|
||||
public Address getAddress() {
|
||||
return address;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package com.baeldung.assertj.extracting;
|
||||
|
||||
class ZipCode {
|
||||
private long zipcode;
|
||||
|
||||
ZipCode(long zipcode) {
|
||||
this.zipcode = zipcode;
|
||||
}
|
||||
|
||||
public long getZipcode() {
|
||||
return zipcode;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package com.baeldung.assertj.extracting;
|
||||
|
||||
import org.assertj.core.api.InstanceOfAssertFactories;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.as;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class AssertJExtractingUnitTest {
|
||||
static final List<Address> RESTRICTED_ADDRESSES = new ArrayList<>();
|
||||
|
||||
@Test
|
||||
void whenUsingRegularAssertionFlow_thenCorrect() {
|
||||
|
||||
// Given
|
||||
Person person = new Person("aName", "aLastName", new Address("aStreet", "aCity", new ZipCode(90210)));
|
||||
|
||||
// Then
|
||||
Address address = person.getAddress();
|
||||
assertThat(address).isNotNull()
|
||||
.isNotIn(RESTRICTED_ADDRESSES);
|
||||
ZipCode zipCode = address.getZipCode();
|
||||
assertThat(zipCode).isNotNull();
|
||||
assertThat(zipCode.getZipcode()).isBetween(1000L, 100_000L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingExtractingAssertionFlow_thenCorrect() {
|
||||
|
||||
// Given
|
||||
Person person = new Person("aName", "aLastName", new Address("aStreet", "aCity", new ZipCode(90210)));
|
||||
|
||||
// Then
|
||||
assertThat(person)
|
||||
.extracting(Person::getAddress)
|
||||
.isNotNull()
|
||||
.isNotIn(RESTRICTED_ADDRESSES)
|
||||
.extracting(Address::getZipCode)
|
||||
.isNotNull()
|
||||
.extracting(ZipCode::getZipcode, as(InstanceOfAssertFactories.LONG))
|
||||
.isBetween(1_000L, 100_000L);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue