Test Micronaut POJOs are annotated with @Introspected

By Sergio del Amo - Mon, 17 May 2021 16:48:21 GMT

Tags: #micronaut #spock #test

I always annotate my model classes with @Introspected. It is easy to test you don't forget the annotation.

Given a POJO:

import io.micronaut.core.annotation.Introspected;
import io.micronaut.core.annotation.NonNull;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

@Introspected
public class EuroExchangeResponse {

    @NonNull
    @NotNull
    private BigDecimal rate;

    @NonNull
    @NotNull
    private Currency target;

    @NonNull
    @NotNull
    private LocalDate date;

    public EuroExchangeResponse(@NonNull BigDecimal rate,
                                @NonNull Currency target,
                                @NonNull LocalDate date) {
        this.rate = rate;
        this.target = target;
        this.date = date;
    }

    // Getters & Setters
}

I write a Spock specification to verify that no exception is thrown when I attempt to retrieve the Bean Introspection:

import io.micronaut.core.beans.BeanIntrospection
import spock.lang.Specification

class EuroExchangeResponseSpec extends Specification {

    void "EuroExchangeResponse is annotated with @Introspected"() {
        when:
        BeanIntrospection.getIntrospection(EuroExchangeResponse)

        then:
        noExceptionThrown()
    }
}