Added support for referencing and refactoring inside ``.extracting()`` methods with fields, properties and methods (though getter renaming does not work that perfect, but I'm giving up for now as the IntelliJ SDK docs are seriously lacking).
Fixed an exception in batch mode if the description string was the same but for different fixes. Now descriptions are different for quick fixes triggered by AssertThatJava8OptionalInspection and AssertThatGuavaOptionalInspection. Minor refactorings. Extended documentation.
This commit is contained in:
@@ -2,8 +2,11 @@ package de.platon42.intellij.playground;
|
||||
|
||||
import org.assertj.core.api.ListAssert;
|
||||
import org.assertj.core.data.Offset;
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -122,10 +125,27 @@ public class Playground {
|
||||
assertThat(!false).isTrue();
|
||||
}
|
||||
|
||||
private void stringIsEmpty() {
|
||||
private void stringStuff() {
|
||||
String foo = "bar";
|
||||
assertThat(foo).isEqualTo("");
|
||||
assertThat(foo).hasSize(0);
|
||||
assertThat(foo.contains("foobar")).isTrue();
|
||||
assertThat(foo).contains("foobar");
|
||||
assertThat(foo.startsWith("foobar")).isTrue();
|
||||
assertThat(foo).startsWith("foobar");
|
||||
assertThat(foo.endsWith("foobar")).isTrue();
|
||||
assertThat(foo).endsWith("foobar");
|
||||
assertThat(foo.equalsIgnoreCase("foo")).isTrue();
|
||||
assertThat(foo).isEqualToIgnoringCase("foo");
|
||||
|
||||
assertThat(foo.contains("foobar")).isFalse();
|
||||
assertThat(foo).doesNotContain("foobar");
|
||||
assertThat(foo.startsWith("foobar")).isFalse();
|
||||
assertThat(foo).doesNotStartWith("foobar");
|
||||
assertThat(foo.endsWith("foobar")).isFalse();
|
||||
assertThat(foo).doesNotEndWith("foobar");
|
||||
assertThat(foo.equalsIgnoreCase("foo")).isFalse();
|
||||
assertThat(foo).isNotEqualToIgnoringCase("foo");
|
||||
}
|
||||
|
||||
private void java8Optional() {
|
||||
@@ -291,6 +311,60 @@ public class Playground {
|
||||
assertThat(new float[1]).containsExactly(new float[2], offset(1.0f));
|
||||
assertThat(new float[1]).as("array equals").containsExactly(new float[2], offset(1.0f));
|
||||
|
||||
assertThat(new Object()).extracting("toString");
|
||||
assertThat(new Object()).extracting(Object::toString, Object::hashCode);
|
||||
}
|
||||
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
List<Contact> contactList = Collections.emptyList();
|
||||
|
||||
assertThat(contact).extracting("name").isEqualTo("foo");
|
||||
assertThat(contact).extracting("age", "country", "address.street", "street", "address.noMailings", "address.REALLYnoMAILINGS").containsExactly(1, "Elmst. 42");
|
||||
assertThat(contact).extracting(Extractors.byName("name")).isEqualTo("foo");
|
||||
assertThat(contact).extracting(Extractors.resultOf("getStreet")).isEqualTo("foo");
|
||||
assertThat(contact).extracting(Extractors.resultOf("getStreet"), Extractors.byName("narf")).isEqualTo("foo");
|
||||
|
||||
assertThat(contactList).extracting("name").isEqualTo("foo");
|
||||
assertThat(contactList).extracting("name", "moar").isEqualTo("foo");
|
||||
assertThat(contactList).extracting("name", String.class).isEqualTo("foo");
|
||||
assertThat(contactList).extracting(Extractors.byName("name")).isEqualTo("foo");
|
||||
assertThat(contactList).extracting(Extractors.resultOf("getStreet"), Extractors.byName("narf")).isEqualTo("foo");
|
||||
assertThat(contactList).extractingResultOf("getStreet").isEqualTo("foo");
|
||||
assertThat(contactList).extractingResultOf("getStreet", String.class).isEqualTo("foo");
|
||||
assertThat(contactList).flatExtracting("age", "address.street", "street").containsExactly(1, "Elmst. 42");
|
||||
assertThat(contactList).flatExtracting("age").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
|
||||
public class Contact {
|
||||
private String name;
|
||||
private Integer age;
|
||||
private Address address;
|
||||
|
||||
public String getStreet() {
|
||||
return address.getStreet();
|
||||
}
|
||||
}
|
||||
|
||||
public class Address {
|
||||
private String street;
|
||||
private String country;
|
||||
|
||||
public String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public boolean isNoMailings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Boolean getREALLYnoMAILINGS() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException
|
||||
@AddLocalJarToModule(Assertions::class)
|
||||
abstract class AbstractCajonTest {
|
||||
|
||||
// See https://github.com/junit-team/junit5/issues/157
|
||||
// See https://github.com/junit-team/junit5/issues/157, should be resolved with junit5 5.5 M2
|
||||
protected fun runTest(body: () -> Unit) {
|
||||
val throwables = arrayOfNulls<Throwable>(1)
|
||||
|
||||
|
||||
+13
-12
@@ -9,44 +9,45 @@ import org.assertj.core.api.Assertions
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
@AddLocalJarToModule(com.google.common.base.Optional::class, org.assertj.guava.api.Assertions::class, Assertions::class)
|
||||
@TestDataSubPath("inspections/AssertThatGuavaOptional")
|
||||
internal class AssertThatGuavaOptionalInspectionTest : AbstractCajonTest() {
|
||||
|
||||
@Test
|
||||
@TestDataSubPath("inspections/AssertThatGuavaOptional")
|
||||
internal fun assertThat_get_or_isPresent_for_Guava_Optional_can_be_simplified(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.enableInspections(AssertThatGuavaOptionalInspection::class.java)
|
||||
myFixture.configureByFile("AssertThatGuavaOptionalBefore.java")
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isPresent()"), 5)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isAbsent()"), 5)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isAbsent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isTrue() with isPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isFalse() with isAbsent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with contains()"), 7)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isNotEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isPresent()"), 3)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with isAbsent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isAbsent()"), 3)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isNotEqualTo() with isAbsent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isTrue() with isPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isFalse() with isAbsent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with contains()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap expected expression and replace isEqualTo() with contains()"), 6)
|
||||
myFixture.checkResultByFile("AssertThatGuavaOptionalAfter.java")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestDataSubPath("inspections/AssertThatGuavaOptional")
|
||||
internal fun adds_missing_Guava_import_any_order(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.enableInspections(AssertThatGuavaOptionalInspection::class.java)
|
||||
myFixture.configureByFile("WithoutPriorGuavaImportBefore.java")
|
||||
executeQuickFixes(myFixture, Regex("Replace .* with .*"), 7)
|
||||
executeQuickFixes(myFixture, Regex(".*eplace .* with .*"), 7)
|
||||
myFixture.checkResultByFile("WithoutPriorGuavaImportAfter.java")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestDataSubPath("inspections/AssertThatGuavaOptional")
|
||||
internal fun adds_missing_Guava_import_isAbsent_first(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.enableInspections(AssertThatGuavaOptionalInspection::class.java)
|
||||
myFixture.configureByFile("WithoutPriorGuavaImportBefore.java")
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isAbsent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex("Replace .* with .*"), 6)
|
||||
executeQuickFixes(myFixture, Regex(".*eplace .* with .*"), 6)
|
||||
myFixture.checkResultByFile("WithoutPriorGuavaImportAfter.java")
|
||||
}
|
||||
}
|
||||
|
||||
+11
-8
@@ -14,14 +14,17 @@ internal class AssertThatJava8OptionalInspectionTest : AbstractCajonTest() {
|
||||
runTest {
|
||||
myFixture.enableInspections(AssertThatJava8OptionalInspection::class.java)
|
||||
myFixture.configureByFile("AssertThatJava8OptionalBefore.java")
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isPresent()"), 3)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isNotPresent()"), 3)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isNotPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isTrue() with isPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isFalse() with isNotPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with contains()"), 3)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isSameAs() with containsSame()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isNotEqualTo() with isPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with isNotPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isNotEqualTo() with isNotPresent()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isTrue() with isPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isEqualTo() with isNotPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Replace isNotEqualTo() with isPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isFalse() with isNotPresent()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap expected expression and replace isEqualTo() with contains()"), 2)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isEqualTo() with contains()"), 1)
|
||||
executeQuickFixes(myFixture, Regex.fromLiteral("Unwrap actual expression and replace isSameAs() with containsSame()"), 1)
|
||||
myFixture.checkResultByFile("AssertThatJava8OptionalAfter.java")
|
||||
}
|
||||
}
|
||||
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
package de.platon42.intellij.plugins.cajon.references
|
||||
|
||||
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture
|
||||
import de.platon42.intellij.jupiter.MyFixture
|
||||
import de.platon42.intellij.jupiter.TestDataSubPath
|
||||
import de.platon42.intellij.plugins.cajon.AbstractCajonTest
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
|
||||
@TestDataSubPath("references")
|
||||
internal class ExtractorReferenceContributorTest : AbstractCajonTest() {
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_field_extracting(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference1.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).isEqualTo("private String name;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_first_part_of_a_path(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference2.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).isEqualTo("protected Address address;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_second_part_of_a_path_and_both_getter_and_field(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference3.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("private String street;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_on_a_bare_method_call(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference4.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("public Boolean getREALLYnoMAILINGS()")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_with_only_Getter_on_second_part(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference5.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("public boolean isNoMailings()")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_using_byName_extractor(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference6.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).isEqualTo("private String name;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_using_resultOf_extractor(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference7.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("public String getStreetName()")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_field_extraction_on_list(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference8.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).isEqualTo("private String name;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_field_flat_extraction_of_path_on_list(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference9.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("private String street;")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun extractor_is_able_to_find_reference_for_extraction_on_result_of_method(@MyFixture myFixture: JavaCodeInsightTestFixture) {
|
||||
runTest {
|
||||
myFixture.configureByFiles("FindReference10.java", "Address.java", "Contact.java")
|
||||
assertThat(myFixture.elementAtCaret.text).startsWith("public String getStreetName()")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
public class Address {
|
||||
private String street;
|
||||
private String country;
|
||||
|
||||
private String getStreet() {
|
||||
return street;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public boolean isNoMailings() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public Boolean getREALLYnoMAILINGS() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
public class Contact {
|
||||
private String name;
|
||||
public Integer age;
|
||||
protected Address address;
|
||||
public String getStreetName()
|
||||
{
|
||||
return address.getStreet();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference1 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting("name<caret>").isEqualTo("foo");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference10 {
|
||||
|
||||
private void findReferences() {
|
||||
List<Contact> contactList = Collections.emptyList();
|
||||
|
||||
assertThat(contactList).extractingResultOf("getStreetName<caret>").isEqualTo("foo");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference2 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting("address<caret>.street", "streetName").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference3 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting("address.street<caret>", "address.REALLYnoMAILINGS").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference4 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting("address.getREALLYnoMAILINGS<caret>", "address.country").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference5 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting("address.noMailings<caret>").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference6 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting(Extractors.byName("name<caret>")).isEqualTo("foo");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference7 {
|
||||
|
||||
private void findReferences() {
|
||||
Contact contact = new Contact();
|
||||
|
||||
assertThat(contact).extracting(Extractors.resultOf("getStreetName<caret>")).isEqualTo("foo");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference8 {
|
||||
|
||||
private void findReferences() {
|
||||
List<Contact> contactList = Collections.emptyList();
|
||||
|
||||
assertThat(contactList).extracting("name<caret>").isEqualTo("foo");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import org.assertj.core.extractor.Extractors;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class FindReference9 {
|
||||
|
||||
private void findReferences() {
|
||||
List<Contact> contactList = Collections.emptyList();
|
||||
|
||||
assertThat(contactList).flatExtracting("age", "address.street<caret>", "streetName").containsExactly(1, "Elmst. 42");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user