
hope.kola.contract.assertj.bridge.AssertThat Maven / Gradle / Ivy
package hope.kola.contract.assertj.bridge;
import com.squareup.javapoet.ClassName;
import com.squareup.javapoet.CodeBlock;
import hope.kola.contract.api.ObjectFactory;
import hope.kola.contract.assertj.model.AssertSegment;
import hope.kola.contract.assertj.model.PrimitiveType;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.assertj.core.data.Offset;
public abstract class AssertThat implements ObjectFactory {
protected List segments = new ArrayList<>();
public abstract PrimitiveType primitiveType();
/**
* get all the segments
*
* @return list of the {@link AssertSegment}
*/
public List segments() {
return segments;
}
/**
* Build the entire segment to one piece of code
*
* @return {@link CodeBlock.Builder } code block
*/
public CodeBlock.Builder code() {
// $T.$T.$T
final String temp = StringUtils.repeat("$L", ".", segments.size());
return CodeBlock.builder().add(temp, segments.stream().map(it -> it.code().build()).toArray());
}
public ClassName assertJClass() {
throw new IllegalArgumentException("Please overwrite this assertJClass");
}
protected AssertSegment segment(final String match) {
AssertSegment segment = new AssertSegment(match);
segments.add(segment);
return segment;
}
public Offset offset(final Long value) {
return Offset.offset(value);
}
public Offset strictOffset(final Long value) {
return Offset.strictOffset(value);
}
public Offset offset(final Integer value) {
return Offset.offset(value);
}
public Offset strictOffset(final Integer value) {
return Offset.strictOffset(value);
}
public Offset offset(final Float value) {
return Offset.offset(value);
}
public Offset strictOffset(final Float value) {
return Offset.strictOffset(value);
}
public Offset offset(final Double value) {
return Offset.offset(value);
}
public Offset strictOffset(final Double value) {
return Offset.strictOffset(value);
}
public Offset offset(final BigDecimal value) {
return Offset.offset(value);
}
public Offset strictOffset(final BigDecimal value) {
return Offset.strictOffset(value);
}
public Offset offset(final BigInteger value) {
return Offset.offset(value);
}
public Offset strictOffset(final BigInteger value) {
return Offset.strictOffset(value);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy