package org.springframework.data.util;
import java.util.Optional;
import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.AbstractObjectAssert;
import org.assertj.core.api.Assertions;
public class TypeInformationAssert extends AbstractAssert<TypeInformationAssert, TypeInformation<?>> {
/**
* @param actual
* @param selfType
*/
public TypeInformationAssert(TypeInformation<?> actual) {
super(actual, TypeInformationAssert.class);
}
public static TypeInformationAssert assertThat(TypeInformation<?> information) {
return new TypeInformationAssert(information);
}
public TypeInformationAssert hasComponentType(Class<?> type) {
Assertions.assertThat(actual.getComponentType()).hasValueSatisfying(it -> Assertions.assertThat(it.getType()).isEqualTo(type));
return this;
}
public AbstractObjectAssert<?, TypeInformation<?>> hasProperty(String property) {
Optional<TypeInformation<?>> property2 = actual.getProperty(property);
return Assertions.assertThat(property2.orElseGet(() -> {
failWithMessage("Property %s not found!", property);
return null;
}));
}
}