Coming back to Strikt after a bit... How can I do ...
# strikt
e
Coming back to Strikt after a bit... How can I do an "or"? Writing some tests to make assertions on JPA entities and want make sure that
val
attributes are annotated with either
@Column(updatable = false)
or
@JoinColumn(updatable = false)
Just testing 1 right now
Copy code
expectThat(immutableProperties).all {
    get { getAnnotation(Column::class.java) }.isNotNull().get { updatable }.isFalse()
}
I guess a custom assertion works
Copy code
private fun Assertion.Builder<Field>.hasColumnUpdatableFalse(): Assertion.Builder<Field> =
    assertThat("has @Column(updatable = false) or @JoinColumn(updatable=false)") {
        val column = subject.getAnnotation(Column::class.java)
        val joinColumn = subject.getAnnotation(JoinColumn::class.java)
        (column != null && !column.updatable) || (joinColumn != null && !joinColumn.updatable)
    }