package org.nzbhydra.mapping.newznab.xml;

import org.assertj.core.api.AbstractObjectAssert;
import org.assertj.core.util.Objects;

/**
 * Abstract base class for {@link NewznabXmlApilimits} specific assertions - Generated by CustomAssertionGenerator.
 */
@jakarta.annotation.Generated(value = "assertj-assertions-generator")
public abstract class AbstractNewznabXmlApilimitsAssert<S extends AbstractNewznabXmlApilimitsAssert<S, A>, A extends NewznabXmlApilimits> extends AbstractObjectAssert<S, A> {

    /**
     * Creates a new <code>{@link AbstractNewznabXmlApilimitsAssert}</code> to make assertions on actual NewznabXmlApilimits.
     *
     * @param actual the NewznabXmlApilimits we want to make assertions on.
     */
    protected AbstractNewznabXmlApilimitsAssert(A actual, Class<S> selfType) {
        super(actual, selfType);
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's apiCurrent is equal to the given one.
     *
     * @param apiCurrent the given apiCurrent to compare the actual NewznabXmlApilimits's apiCurrent to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's apiCurrent is not equal to the given one.
     */
    public S hasApiCurrent(Integer apiCurrent) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting apiCurrent of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        Integer actualApiCurrent = actual.getApiCurrent();
        if (!Objects.areEqual(actualApiCurrent, apiCurrent)) {
            failWithMessage(assertjErrorMessage, actual, apiCurrent, actualApiCurrent);
        }

        // return the current assertion for method chaining
        return myself;
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's apiMax is equal to the given one.
     *
     * @param apiMax the given apiMax to compare the actual NewznabXmlApilimits's apiMax to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's apiMax is not equal to the given one.
     */
    public S hasApiMax(Integer apiMax) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting apiMax of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        Integer actualApiMax = actual.getApiMax();
        if (!Objects.areEqual(actualApiMax, apiMax)) {
            failWithMessage(assertjErrorMessage, actual, apiMax, actualApiMax);
        }

        // return the current assertion for method chaining
        return myself;
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's apiOldestTime is equal to the given one.
     *
     * @param apiOldestTime the given apiOldestTime to compare the actual NewznabXmlApilimits's apiOldestTime to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's apiOldestTime is not equal to the given one.
     */
    public S hasApiOldestTime(java.time.Instant apiOldestTime) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting apiOldestTime of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        java.time.Instant actualApiOldestTime = actual.getApiOldestTime();
        if (!Objects.areEqual(actualApiOldestTime, apiOldestTime)) {
            failWithMessage(assertjErrorMessage, actual, apiOldestTime, actualApiOldestTime);
        }

        // return the current assertion for method chaining
        return myself;
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's grabCurrent is equal to the given one.
     *
     * @param grabCurrent the given grabCurrent to compare the actual NewznabXmlApilimits's grabCurrent to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's grabCurrent is not equal to the given one.
     */
    public S hasGrabCurrent(Integer grabCurrent) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting grabCurrent of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        Integer actualGrabCurrent = actual.getGrabCurrent();
        if (!Objects.areEqual(actualGrabCurrent, grabCurrent)) {
            failWithMessage(assertjErrorMessage, actual, grabCurrent, actualGrabCurrent);
        }

        // return the current assertion for method chaining
        return myself;
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's grabMax is equal to the given one.
     *
     * @param grabMax the given grabMax to compare the actual NewznabXmlApilimits's grabMax to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's grabMax is not equal to the given one.
     */
    public S hasGrabMax(Integer grabMax) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting grabMax of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        Integer actualGrabMax = actual.getGrabMax();
        if (!Objects.areEqual(actualGrabMax, grabMax)) {
            failWithMessage(assertjErrorMessage, actual, grabMax, actualGrabMax);
        }

        // return the current assertion for method chaining
        return myself;
    }

    /**
     * Verifies that the actual NewznabXmlApilimits's grabOldestTime is equal to the given one.
     *
     * @param grabOldestTime the given grabOldestTime to compare the actual NewznabXmlApilimits's grabOldestTime to.
     * @return this assertion object.
     * @throws AssertionError - if the actual NewznabXmlApilimits's grabOldestTime is not equal to the given one.
     */
    public S hasGrabOldestTime(java.time.Instant grabOldestTime) {
        // check that actual NewznabXmlApilimits we want to make assertions on is not null.
        isNotNull();

        // overrides the default error message with a more explicit one
        String assertjErrorMessage = "\nExpecting grabOldestTime of:\n  <%s>\nto be:\n  <%s>\nbut was:\n  <%s>";

        // null safe check
        java.time.Instant actualGrabOldestTime = actual.getGrabOldestTime();
        if (!Objects.areEqual(actualGrabOldestTime, grabOldestTime)) {
            failWithMessage(assertjErrorMessage, actual, grabOldestTime, actualGrabOldestTime);
        }

        // return the current assertion for method chaining
        return myself;
    }

}
