Best Assertj code snippet using org.assertj.core.internal.Objects.getPropertyOrFieldValue
Source:Objects.java
...487 List<String> nullFields = new LinkedList<>();488 for (Field field : getDeclaredFieldsIncludingInherited(actual.getClass())) {489 if (!canReadFieldValue(field, actual)) continue;490 String fieldName = field.getName();491 Object otherFieldValue = getPropertyOrFieldValue(other, fieldName);492 if (otherFieldValue == null) {493 nullFields.add(fieldName);494 } else {495 Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName);496 if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName,497 comparatorByPropertyOrField, comparatorByType)) {498 fieldsNames.add(fieldName);499 rejectedValues.add(actualFieldValue);500 expectedValues.add(otherFieldValue);501 }502 }503 }504 if (!fieldsNames.isEmpty())505 throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, fieldsNames,506 rejectedValues, expectedValues, nullFields));507 }508 /**509 * Assert that the given object is lenient equals to other object by comparing given fields value only.510 *511 * @param <A> the actual type512 * @param info contains information about the assertion.513 * @param actual the given object.514 * @param other the object to compare {@code actual} to.515 * @param comparatorByPropertyOrField comparators use for specific fields516 * @param comparatorByType comparators use for specific types517 * @param fields accepted fields518 * @throws NullPointerException if the other type is {@code null}.519 * @throws AssertionError if actual is {@code null}.520 * @throws AssertionError if the actual and the given object are not lenient equals.521 * @throws AssertionError if the other object is not an instance of the actual type.522 * @throws IntrospectionError if a field does not exist in actual.523 */524 public <A> void assertIsEqualToComparingOnlyGivenFields(AssertionInfo info, A actual, A other,525 Map<String, Comparator<?>> comparatorByPropertyOrField,526 TypeComparators comparatorByType,527 String... fields) {528 assertNotNull(info, actual);529 ByFieldsComparison byFieldsComparison = isEqualToComparingOnlyGivenFields(actual, other,530 comparatorByPropertyOrField,531 comparatorByType,532 fields);533 if (byFieldsComparison.isFieldsNamesNotEmpty())534 throw failures.failure(info, shouldBeEqualComparingOnlyGivenFields(actual, byFieldsComparison.fieldsNames,535 byFieldsComparison.rejectedValues,536 byFieldsComparison.expectedValues,537 newArrayList(fields)));538 }539 private <A> ByFieldsComparison isEqualToComparingOnlyGivenFields(A actual, A other,540 Map<String, Comparator<?>> comparatorByPropertyOrField,541 TypeComparators comparatorByType,542 String[] fields) {543 List<String> rejectedFieldsNames = new LinkedList<>();544 List<Object> expectedValues = new LinkedList<>();545 List<Object> rejectedValues = new LinkedList<>();546 for (String fieldName : fields) {547 Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName);548 Object otherFieldValue = getPropertyOrFieldValue(other, fieldName);549 if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName, comparatorByPropertyOrField,550 comparatorByType)) {551 rejectedFieldsNames.add(fieldName);552 expectedValues.add(otherFieldValue);553 rejectedValues.add(actualFieldValue);554 }555 }556 return new ByFieldsComparison(rejectedFieldsNames, expectedValues, rejectedValues);557 }558 /**559 * Assert that the given object is lenient equals to the other by comparing all fields (including inherited fields)560 * unless given ignored ones.561 *562 * @param <A> the actual type563 * @param info contains information about the assertion.564 * @param actual the given object.565 * @param other the object to compare {@code actual} to.566 * @param comparatorByPropertyOrField comparators use for specific fields567 * @param comparatorByType comparators use for specific types568 * @param fields the fields to ignore in comparison569 * @throws NullPointerException if the other type is {@code null}.570 * @throws AssertionError if actual is {@code null}.571 * @throws AssertionError if the actual and the given object are not lenient equals.572 * @throws AssertionError if the other object is not an instance of the actual type.573 */574 public <A> void assertIsEqualToIgnoringGivenFields(AssertionInfo info, A actual, A other,575 Map<String, Comparator<?>> comparatorByPropertyOrField,576 TypeComparators comparatorByType, String... fields) {577 assertNotNull(info, actual);578 ByFieldsComparison byFieldsComparison = isEqualToIgnoringGivenFields(actual, other, comparatorByPropertyOrField,579 comparatorByType, fields);580 if (byFieldsComparison.isFieldsNamesNotEmpty())581 throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, byFieldsComparison.fieldsNames,582 byFieldsComparison.rejectedValues,583 byFieldsComparison.expectedValues,584 newArrayList(fields)));585 }586 private <A> ByFieldsComparison isEqualToIgnoringGivenFields(A actual, A other,587 Map<String, Comparator<?>> comparatorByPropertyOrField,588 TypeComparators comparatorByType,589 String[] givenIgnoredFields) {590 Set<Field> declaredFieldsIncludingInherited = getDeclaredFieldsIncludingInherited(actual.getClass());591 List<String> fieldsNames = new LinkedList<>();592 List<Object> expectedValues = new LinkedList<>();593 List<Object> rejectedValues = new LinkedList<>();594 Set<String> ignoredFields = newLinkedHashSet(givenIgnoredFields);595 for (Field field : declaredFieldsIncludingInherited) {596 // ignore private field if user has decided not to use them in comparison597 String fieldName = field.getName();598 if (ignoredFields.contains(fieldName) || !canReadFieldValue(field, actual)) {599 continue;600 }601 Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName);602 Object otherFieldValue = getPropertyOrFieldValue(other, fieldName);603 if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName,604 comparatorByPropertyOrField, comparatorByType)) {605 fieldsNames.add(fieldName);606 rejectedValues.add(actualFieldValue);607 expectedValues.add(otherFieldValue);608 }609 }610 return new ByFieldsComparison(fieldsNames, expectedValues, rejectedValues);611 }612 @SuppressWarnings({ "unchecked", "rawtypes" })613 static boolean propertyOrFieldValuesAreEqual(Object actualFieldValue, Object otherFieldValue, String fieldName,614 Map<String, Comparator<?>> comparatorByPropertyOrField,615 TypeComparators comparatorByType) {616 // no need to look into comparators if objects are the same617 if (actualFieldValue == otherFieldValue) return true;618 // check field comparators as they take precedence over type comparators619 Comparator fieldComparator = comparatorByPropertyOrField.get(fieldName);620 if (fieldComparator != null) return fieldComparator.compare(actualFieldValue, otherFieldValue) == 0;621 // check if a type comparators exist for the field type622 Class fieldType = actualFieldValue != null ? actualFieldValue.getClass() : otherFieldValue.getClass();623 Comparator typeComparator = comparatorByType.get(fieldType);624 if (typeComparator != null) return typeComparator.compare(actualFieldValue, otherFieldValue) == 0;625 // default comparison using equals626 return org.assertj.core.util.Objects.areEqual(actualFieldValue, otherFieldValue);627 }628 private <A> boolean canReadFieldValue(Field field, A actual) {629 return fieldSupport.isAllowedToRead(field) || propertySupport.publicGetterExistsFor(field.getName(), actual);630 }631 /**632 * Assert that the given object has no null fields except the given ones.633 *634 * @param <A> the actual type.635 * @param info contains information about the assertion.636 * @param actual the given object.637 * @param propertiesOrFieldsToIgnore the fields to ignore in comparison.638 * @throws AssertionError if actual is {@code null}.639 * @throws AssertionError if some of the fields of the actual object are null.640 */641 public <A> void assertHasNoNullFieldsOrPropertiesExcept(AssertionInfo info, A actual,642 String... propertiesOrFieldsToIgnore) {643 assertNotNull(info, actual);644 Set<Field> declaredFieldsIncludingInherited = getDeclaredFieldsIncludingInherited(actual.getClass());645 List<String> nullFieldNames = new LinkedList<>();646 Set<String> ignoredFields = newLinkedHashSet(propertiesOrFieldsToIgnore);647 for (Field field : declaredFieldsIncludingInherited) {648 // ignore private field if user has decided not to use them in comparison649 String fieldName = field.getName();650 if (ignoredFields.contains(fieldName) || !canReadFieldValue(field, actual)) continue;651 Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName);652 if (actualFieldValue == null) nullFieldNames.add(fieldName);653 }654 if (!nullFieldNames.isEmpty())655 throw failures.failure(info, shouldHaveNoNullFieldsExcept(actual, nullFieldNames,656 newArrayList(propertiesOrFieldsToIgnore)));657 }658 /**659 * Asserts that the given object has null fields except the given ones.660 *661 * @param <A> the actual type.662 * @param info contains information about the assertion.663 * @param actual the given object.664 * @param propertiesOrFieldsToIgnore the fields to ignore in comparison.665 * @throws AssertionError is actual is {@code null}.666 * @throws AssertionError if some of the fields of the actual object are not null.667 */668 public <A> void assertHasAllNullFieldsOrPropertiesExcept(AssertionInfo info, A actual,669 String... propertiesOrFieldsToIgnore) {670 assertNotNull(info, actual);671 Set<Field> declaredFields = getDeclaredFieldsIncludingInherited(actual.getClass());672 Set<String> ignoredFields = newLinkedHashSet(propertiesOrFieldsToIgnore);673 List<String> nonNullFieldNames = declaredFields.stream()674 .filter(field -> !ignoredFields.contains(field.getName()))675 .filter(field -> canReadFieldValue(field, actual))676 .filter(field -> getPropertyOrFieldValue(actual, field.getName()) != null)677 .map(Field::getName)678 .collect(toList());679 if (!nonNullFieldNames.isEmpty()) {680 throw failures.failure(info, shouldHaveAllNullFields(actual, nonNullFieldNames, list(propertiesOrFieldsToIgnore)));681 }682 }683 /**684 * Assert that the given object is "deeply" equals to other by comparing all fields recursively.685 *686 * @param <A> the actual type687 * @param info contains information about the assertion.688 * @param actual the given object.689 * @param comparatorByPropertyOrField comparators use for specific fields690 * @param comparatorByType comparators use for specific types691 * @param other the object to compare {@code actual} to.692 * @throws AssertionError if actual is {@code null}.693 * @throws AssertionError if the actual and the given object are not "deeply" equal.694 */695 public <A> void assertIsEqualToComparingFieldByFieldRecursively(AssertionInfo info, Object actual, Object other,696 Map<String, Comparator<?>> comparatorByPropertyOrField,697 TypeComparators comparatorByType) {698 assertNotNull(info, actual);699 List<Difference> differences = determineDifferences(actual, other, comparatorByPropertyOrField, comparatorByType);700 if (!differences.isEmpty()) {701 throw failures.failure(info, shouldBeEqualByComparingFieldByFieldRecursive(actual, other, differences,702 info.representation()));703 }704 }705 /**706 * Get property value first and in case of error try field value.707 * <p>708 * This method supports nested field/property (e.g. "address.street.number").709 *710 * @param <A> the actual type711 * @param a the object to get field value from712 * @param fieldName Field name to read, can be nested713 * @return (nested) field value or property value if field was not accessible.714 * @throws IntrospectionError is field value can't get retrieved.715 */716 private <A> Object getPropertyOrFieldValue(A a, String fieldName) {717 return PropertyOrFieldSupport.COMPARISON.getValueOf(fieldName, a);718 }719 /**720 * Returns the declared fields of given class and its superclasses stopping at superclass in <code>java.lang</code>721 * package whose fields are not included.722 *723 * @param clazz the class we want the declared fields.724 * @return the declared fields of given class and its superclasses.725 */726 public static Set<Field> getDeclaredFieldsIncludingInherited(Class<?> clazz) {727 requireNonNull(clazz, "expecting Class parameter not to be null");728 Set<Field> declaredFields = getDeclaredFieldsIgnoringSyntheticAndStatic(clazz);729 // get fields declared in superclass730 Class<?> superclazz = clazz.getSuperclass();...
Source:EnhancedObjectAssert.java
...43 List<String> nullFields = new LinkedList<>();44 for (Field field : getDeclaredFieldsIncludingInherited(actual.getClass())) {45 if (!canReadFieldValue(field, actual)) continue;46 String fieldName = field.getName();47 Object otherFieldValue = getPropertyOrFieldValue(other, fieldName);48 if (otherFieldValue == null) {49 nullFields.add(fieldName);50 } else {51 Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName);52 if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName,53 comparatorByPropertyOrField, comparatorByType)) {54 fieldsNames.add(fieldName);55 rejectedValues.add(actualFieldValue);56 expectedValues.add(otherFieldValue);57 }58 }59 }60 Set<String> ignoredFields = newLinkedHashSet(propertiesOrFieldsToIgnore);61 ignoredFields.addAll(nullFields);62 if (!fieldsNames.isEmpty())63 throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, fieldsNames,64 rejectedValues, expectedValues, new LinkedList<>(ignoredFields)));65 return myself;66 }67 //------------------------------------------------------------68 private <A> boolean canReadFieldValue(Field field, A actual) {69 return fieldSupport.isAllowedToRead(field) || propertySupport.publicGetterExistsFor(field.getName(), actual);70 }71 private <A> Object getPropertyOrFieldValue(A a, String fieldName) {72 return PropertyOrFieldSupport.COMPARISON.getValueOf(fieldName, a);73 }74 static boolean propertyOrFieldValuesAreEqual(Object actualFieldValue, Object otherFieldValue, String fieldName,75 Map<String, Comparator<?>> comparatorByPropertyOrField,76 TypeComparators comparatorByType) {77 // no need to look into comparators if objects are the same78 if (actualFieldValue == otherFieldValue) return true;79 // check field comparators as they take precedence over type comparators80 Comparator fieldComparator = comparatorByPropertyOrField.get(fieldName);81 if (fieldComparator != null) return fieldComparator.compare(actualFieldValue, otherFieldValue) == 0;82 // check if a type comparators exist for the field type83 Class fieldType = actualFieldValue != null ? actualFieldValue.getClass() : otherFieldValue.getClass();84 Comparator typeComparator = comparatorByType.get(fieldType);85 if (typeComparator != null) return typeComparator.compare(actualFieldValue, otherFieldValue) == 0;...
getPropertyOrFieldValue
Using AI Code Generation
1package org.assertj.core.internal;2import org.junit.Test;3import static org.assertj.core.api.Assertions.assertThat;4public class Objects_getPropertyOrFieldValue_Test {5 public void should_return_property_value() {6 Objects objects = new Objects();7 Object result = objects.getPropertyOrFieldValue("foo", "foo");8 assertThat(result).isEqualTo("foo");9 }10}11package org.assertj.core.internal;12import org.junit.Test;13import static org.assertj.core.api.Assertions.assertThat;14public class Objects_getPropertyOrFieldValue_Test {15 public void should_return_field_value() {16 Objects objects = new Objects();17 Object result = objects.getPropertyOrFieldValue("foo", "foo");18 assertThat(result).isEqualTo("foo");19 }20}21package org.assertj.core.internal;22import org.junit.Test;23import static org.assertj.core.api.Assertions.assertThat;24public class Objects_getPropertyOrFieldValue_Test {25 public void should_return_field_value() {26 Objects objects = new Objects();27 Object result = objects.getPropertyOrFieldValue("foo", "foo");28 assertThat(result).isEqualTo("foo");29 }30}31package org.assertj.core.internal;32import org.junit.Test;33import static org.assertj.core.api.Assertions.assertThat;34public class Objects_getPropertyOrFieldValue_Test {35 public void should_return_field_value() {36 Objects objects = new Objects();37 Object result = objects.getPropertyOrFieldValue("foo", "foo");38 assertThat(result).isEqualTo("foo");39 }40}41package org.assertj.core.internal;42import org.junit.Test;43import static org.assertj.core.api.Assertions.assertThat;44public class Objects_getPropertyOrFieldValue_Test {45 public void should_return_field_value() {46 Objects objects = new Objects();
getPropertyOrFieldValue
Using AI Code Generation
1package org.example;2import org.assertj.core.api.Assertions;3import org.assertj.core.api.Condition;4import org.assertj.core.api.SoftAssertions;5import org.assertj.core.internal.Objects;6import org.junit.Test;7import org.junit.runner.RunWith;8import org.mockito.Mock;9import org.mockito.junit.MockitoJUnitRunner;10import java.util.ArrayList;11import java.util.Arrays;12import java.util.List;13import static org.assertj.core.api.Assertions.assertThat;14@RunWith(MockitoJUnitRunner.class)15public class AssertJTest {16 private Objects objects;17 public void testAssertJ() {18 List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));19 assertThat(list).is(new Condition<>(o -> {20 try {21 return objects.getPropertyOrFieldValue(o, "size") == 3;22 } catch (Exception e) {23 e.printStackTrace();24 }25 return false;26 }, "size should be 3"));27 }28}29package org.example;30import org.assertj.core.api.Assertions;31import org.assertj.core.api.Condition;32import org.assertj.core.api.SoftAssertions;33import org.assertj.core.internal.Objects;34import org.junit.Test;35import org.junit.runner.RunWith;36import org.mockito.Mock;37import org.mockito.junit.MockitoJUnitRunner;38import java.util.ArrayList;39import java.util.Arrays;40import java.util.List;41import static org.assertj.core.api.Assertions.assertThat;42@RunWith(MockitoJUnitRunner.class)43public class AssertJTest {44 private Objects objects;45 public void testAssertJ() {46 List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));47 assertThat(list).is(new Condition<>(o -> {48 try {49 return objects.getPropertyOrFieldValue(o, "size") == 3;50 } catch (Exception e) {51 e.printStackTrace();52 }53 return false;54 }, "size should be 3"));55 }56}57package org.example;58import org.assertj.core.api.Assertions;59import org.assertj.core.api.Condition;60import org.assertj.core.api.SoftAssertions;61import org.assertj.core.internal.Objects;62import org.junit.Test;63import org.junit.runner.RunWith;64import org.mockito.Mock;65import org.mockito.junit.MockitoJUnitRunner;66import java.util.ArrayList
getPropertyOrFieldValue
Using AI Code Generation
1import org.assertj.core.api.Assertions;2import org.assertj.core.internal.Objects;3import org.junit.Test;4public class Test1 {5 public void test() {6 Object o = new Object();7 Object o1 = new Object();8 Assertions.assertThat(new Objects().getPropertyOrFieldValue("toString", o)).isEqualTo(o.toString());9 Assertions.assertThat(new Objects().getPropertyOrFieldValue("toString", o1)).isEqualTo(o1.toString());10 }11}12public Object getPropertyOrFieldValue(String propertyName, Object actual) {13 if (actual == null) return null;14 if (actual instanceof Map) return ((Map<?, ?>) actual).get(propertyName);15 try {16 return readField(actual, propertyName);17 } catch (IntrospectionError e) {18 throw new IntrospectionError(format("Can't find any field or property with name <%s> in <%s>", propertyName, actual));19 }20 }21private Object readField(Object target, String propertyName) {22 try {23 return PropertyOrFieldSupport.EXTRACTION.propertyOrField(propertyName, target.getClass()).read(target);24 } catch (IntrospectionError e) {25 throw new IntrospectionError(format("Can't find any field or property with name <%s> in <%s>", propertyName, target));26 }27 }28public Object read(Object target) {29 if (isField()) return readField(target);30 return readProperty(target);31 }32private Object readField(Object target) {33 try {34 return field.get(target);35 } catch (Exception e) {36 throw new IntrospectionError(format("Can't read field <%s> on <%s>", field.getName(), target));37 }38 }39public Object get(Object obj) throws IllegalArgumentException, IllegalAccessException {40 if (obj == null) {41 throw new NullPointerException();42 }43 if (!override) {
getPropertyOrFieldValue
Using AI Code Generation
1import org.assertj.core.api.Assertions;2import org.assertj.core.internal.Objects;3public class Test {4 public static void main(String[] args) {5 Objects o = new Objects();6 String s = "Hello";7 String s1 = "Hello";8 String s2 = "Hello";9 Assertions.assertThat(o.getPropertyOrFieldValue(s, "value")).isEqualTo(s1);10 Assertions.assertThat(o.getPropertyOrFieldValue(s, "count")).isEqualTo(s2);11 }12}13at org.assertj.core.internal.Objects.assertEqual(Objects.java:95)14at org.assertj.core.internal.Objects.assertEqual(Objects.java:91)15at org.assertj.core.internal.Objects.assertEqual(Objects.java:87)16at org.assertj.core.api.AbstractAssert.isEqualTo(AbstractAssert.java:69)17at Test.main(Test.java:12)
getPropertyOrFieldValue
Using AI Code Generation
1import org.assertj.core.api.Assertions;2import org.assertj.core.internal.Objects;3import org.junit.Test;4public class Test1 {5 public void test() {6 Objects objects = new Objects();7 String myString = "Hello";8 Assertions.assertThat(objects.getPropertyOrFieldValue(myString, "length")).isEqualTo(5);9 }10}
getPropertyOrFieldValue
Using AI Code Generation
1package org.assertj.core.internal;2import static org.assertj.core.api.Assertions.assertThat;3public class Objects_getPropertyOrFieldValue {4 public static void main(String[] args) {5 Objects objects = new Objects();6 Person person = new Person();7 person.setName("John");8 person.setAge(35);9 String name = (String) objects.getPropertyOrFieldValue("name", person);10 System.out.println("Name of the person is " + name);11 }12}13class Person {14 private String name;15 private int age;16 public String getName() {17 return name;18 }19 public void setName(String name) {20 this.name = name;21 }22 public int getAge() {23 return age;24 }25 public void setAge(int age) {26 this.age = age;27 }28}
getPropertyOrFieldValue
Using AI Code Generation
1public static void main(String[] args) throws Exception {2 Object obj = new Object();3 String fieldName = "hashCode";4 Object result = Objects.instance().getPropertyOrFieldValue(obj, fieldName);5 System.out.println(result);6}7 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)8 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)9 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)10 at java.lang.reflect.Method.invoke(Method.java:498)11 at org.assertj.core.internal.Objects.getPropertyOrFieldValue(Objects.java:277)12 at 1.main(1.java:7)13 at org.assertj.core.internal.Objects.getPropertyOrFieldValue(Objects.java:275)14 at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)15 at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)16 at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)17 at java.lang.reflect.Field.get(Field.java:393)18 at org.assertj.core.internal.Objects.getPropertyOrFieldValue(Objects.java:273)
getPropertyOrFieldValue
Using AI Code Generation
1package org.assertj.core.internal;2import org.assertj.core.api.AbstractAssert;3import org.assertj.core.api.AssertionInfo;4import org.assertj.core.internal.Objects;5import org.assertj.core.util.VisibleForTesting;6import org.assertj.core.util.introspection.IntrospectionError;7import org.assertj.core.util.introspection.Introspector;8import org.assertj.core.util.introspection.PropertyOrFieldSupport;9import java.util.function.Function;10import static org.assertj.core.error.ShouldBeEqual.shouldBeEqual;11import static org.assertj.core.error.ShouldHaveProperty.shouldHaveProperty;12import static org.assertj.core.error.ShouldNotBeNull.shouldNotBeNull;13import static org.assertj.core.internal.CommonValidations.checkActualIsNotNull;14import static org.assertj.core.internal.CommonValidations.checkPropertyNameIsValid;15import static org.assertj.core.internal.CommonValidations.checkPropertyOrFieldExists;16import static org.assertj.core.util.Objects.areEqual;17public class Objects_assertPropertyOrFieldValuesEqual extends AbstractAssert<Objects_assertPropertyOrFieldValuesEqual, Object> {18 Failures failures = Failures.instance();19 protected Objects_assertPropertyOrFieldValuesEqual(Object actual) {20 super(actual, Objects_assertPropertyOrFieldValuesEqual.class);21 }22 public Objects_assertPropertyOrFieldValuesEqual isEqualTo(Object expected, String propertyName) {23 Objects objects = new Objects();24 objects.assertPropertyOrFieldValuesEqual(info, actual, expected, propertyName);25 return myself;26 }27}28public class Objects_assertPropertyOrFieldValuesEqual_Test {29 public void should_throw_error_if_property_name_is_null() {30 assertThatIllegalArgumentException().isThrownBy(() -> assertThat(new Person("John")).isEqualTo(new Person("John"), null))31 .withMessage("The property/field name to read should not be null or empty");32 }33 public void should_throw_error_if_property_name_is_empty() {34 assertThatIllegalArgumentException().isThrownBy(() -> assertThat(new Person("John")).isEqualTo(new Person("John"), ""))35 .withMessage("The property/field name to read should not be null or empty");36 }37 public void should_throw_error_if_actual_is_null() {38 assertThatNullPointerException().isThrownBy(() -> assertThat((Person) null).isEqualTo(new Person("John"), "name"))
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!