package org.nzbhydra.externaltools;

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

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

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

    /**
     * Verifies that the actual AddRequest is add disabled indexers.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not add disabled indexers.
     */
    public S isAddDisabledIndexers() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isAddDisabledIndexers()) {
            failWithMessage("\nExpecting that actual AddRequest is add disabled indexers but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not add disabled indexers.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is add disabled indexers.
     */
    public S isNotAddDisabledIndexers() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isAddDisabledIndexers()) {
            failWithMessage("\nExpecting that actual AddRequest is not add disabled indexers but is.");
        }

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

    /**
     * Verifies that the actual AddRequest is add torrent.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not add torrent.
     */
    public S isAddTorrent() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isAddTorrent()) {
            failWithMessage("\nExpecting that actual AddRequest is add torrent but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not add torrent.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is add torrent.
     */
    public S isNotAddTorrent() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isAddTorrent()) {
            failWithMessage("\nExpecting that actual AddRequest is not add torrent but is.");
        }

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

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

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

        // null safe check
        AddRequest.AddType actualAddType = actual.getAddType();
        if (!Objects.areEqual(actualAddType, addType)) {
            failWithMessage(assertjErrorMessage, actual, addType, actualAddType);
        }

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

    /**
     * Verifies that the actual AddRequest is add usenet.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not add usenet.
     */
    public S isAddUsenet() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isAddUsenet()) {
            failWithMessage("\nExpecting that actual AddRequest is add usenet but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not add usenet.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is add usenet.
     */
    public S isNotAddUsenet() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isAddUsenet()) {
            failWithMessage("\nExpecting that actual AddRequest is not add usenet but is.");
        }

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

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

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

        // null safe check
        String actualAdditionalParameters = actual.getAdditionalParameters();
        if (!Objects.areEqual(actualAdditionalParameters, additionalParameters)) {
            failWithMessage(assertjErrorMessage, actual, additionalParameters, actualAdditionalParameters);
        }

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

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

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

        // null safe check
        String actualAnimeCategories = actual.getAnimeCategories();
        if (!Objects.areEqual(actualAnimeCategories, animeCategories)) {
            failWithMessage(assertjErrorMessage, actual, animeCategories, actualAnimeCategories);
        }

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

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

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

        // null safe check
        String actualCategories = actual.getCategories();
        if (!Objects.areEqual(actualCategories, categories)) {
            failWithMessage(assertjErrorMessage, actual, categories, actualCategories);
        }

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

    /**
     * Verifies that the actual AddRequest is configure for torrents.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not configure for torrents.
     */
    public S isConfigureForTorrents() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isConfigureForTorrents()) {
            failWithMessage("\nExpecting that actual AddRequest is configure for torrents but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not configure for torrents.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is configure for torrents.
     */
    public S isNotConfigureForTorrents() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isConfigureForTorrents()) {
            failWithMessage("\nExpecting that actual AddRequest is not configure for torrents but is.");
        }

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

    /**
     * Verifies that the actual AddRequest is configure for usenet.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not configure for usenet.
     */
    public S isConfigureForUsenet() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isConfigureForUsenet()) {
            failWithMessage("\nExpecting that actual AddRequest is configure for usenet but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not configure for usenet.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is configure for usenet.
     */
    public S isNotConfigureForUsenet() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isConfigureForUsenet()) {
            failWithMessage("\nExpecting that actual AddRequest is not configure for usenet but is.");
        }

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

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

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

        // null safe check
        String actualDiscographySeedTime = actual.getDiscographySeedTime();
        if (!Objects.areEqual(actualDiscographySeedTime, discographySeedTime)) {
            failWithMessage(assertjErrorMessage, actual, discographySeedTime, actualDiscographySeedTime);
        }

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

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

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

        // null safe check
        String actualEarlyDownloadLimit = actual.getEarlyDownloadLimit();
        if (!Objects.areEqual(actualEarlyDownloadLimit, earlyDownloadLimit)) {
            failWithMessage(assertjErrorMessage, actual, earlyDownloadLimit, actualEarlyDownloadLimit);
        }

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

    /**
     * Verifies that the actual AddRequest is enable automatic search.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not enable automatic search.
     */
    public S isEnableAutomaticSearch() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isEnableAutomaticSearch()) {
            failWithMessage("\nExpecting that actual AddRequest is enable automatic search but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not enable automatic search.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is enable automatic search.
     */
    public S isNotEnableAutomaticSearch() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isEnableAutomaticSearch()) {
            failWithMessage("\nExpecting that actual AddRequest is not enable automatic search but is.");
        }

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

    /**
     * Verifies that the actual AddRequest is enable interactive search.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not enable interactive search.
     */
    public S isEnableInteractiveSearch() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isEnableInteractiveSearch()) {
            failWithMessage("\nExpecting that actual AddRequest is enable interactive search but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not enable interactive search.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is enable interactive search.
     */
    public S isNotEnableInteractiveSearch() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isEnableInteractiveSearch()) {
            failWithMessage("\nExpecting that actual AddRequest is not enable interactive search but is.");
        }

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

    /**
     * Verifies that the actual AddRequest is enable rss.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not enable rss.
     */
    public S isEnableRss() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isEnableRss()) {
            failWithMessage("\nExpecting that actual AddRequest is enable rss but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not enable rss.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is enable rss.
     */
    public S isNotEnableRss() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isEnableRss()) {
            failWithMessage("\nExpecting that actual AddRequest is not enable rss but is.");
        }

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

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

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

        // null safe check
        AddRequest.ExternalTool actualExternalTool = actual.getExternalTool();
        if (!Objects.areEqual(actualExternalTool, externalTool)) {
            failWithMessage(assertjErrorMessage, actual, externalTool, actualExternalTool);
        }

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

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

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

        // null safe check
        String actualMinimumSeeders = actual.getMinimumSeeders();
        if (!Objects.areEqual(actualMinimumSeeders, minimumSeeders)) {
            failWithMessage(assertjErrorMessage, actual, minimumSeeders, actualMinimumSeeders);
        }

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

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

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

        // null safe check
        String actualNzbhydraHost = actual.getNzbhydraHost();
        if (!Objects.areEqual(actualNzbhydraHost, nzbhydraHost)) {
            failWithMessage(assertjErrorMessage, actual, nzbhydraHost, actualNzbhydraHost);
        }

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

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

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

        // null safe check
        String actualNzbhydraName = actual.getNzbhydraName();
        if (!Objects.areEqual(actualNzbhydraName, nzbhydraName)) {
            failWithMessage(assertjErrorMessage, actual, nzbhydraName, actualNzbhydraName);
        }

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

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

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

        // null safe check
        Integer actualPriority = actual.getPriority();
        if (!Objects.areEqual(actualPriority, priority)) {
            failWithMessage(assertjErrorMessage, actual, priority, actualPriority);
        }

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

    /**
     * Verifies that the actual AddRequest is remove year from search string.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not remove year from search string.
     */
    public S isRemoveYearFromSearchString() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isRemoveYearFromSearchString()) {
            failWithMessage("\nExpecting that actual AddRequest is remove year from search string but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not remove year from search string.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is remove year from search string.
     */
    public S isNotRemoveYearFromSearchString() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isRemoveYearFromSearchString()) {
            failWithMessage("\nExpecting that actual AddRequest is not remove year from search string but is.");
        }

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

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

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

        // null safe check
        String actualSeasonPackSeedTime = actual.getSeasonPackSeedTime();
        if (!Objects.areEqual(actualSeasonPackSeedTime, seasonPackSeedTime)) {
            failWithMessage(assertjErrorMessage, actual, seasonPackSeedTime, actualSeasonPackSeedTime);
        }

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

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

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

        // null safe check
        String actualSeedRatio = actual.getSeedRatio();
        if (!Objects.areEqual(actualSeedRatio, seedRatio)) {
            failWithMessage(assertjErrorMessage, actual, seedRatio, actualSeedRatio);
        }

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

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

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

        // null safe check
        String actualSeedTime = actual.getSeedTime();
        if (!Objects.areEqual(actualSeedTime, seedTime)) {
            failWithMessage(assertjErrorMessage, actual, seedTime, actualSeedTime);
        }

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

    /**
     * Verifies that the actual AddRequest is use hydra priorities.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is not use hydra priorities.
     */
    public S isUseHydraPriorities() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is true
        if (!actual.isUseHydraPriorities()) {
            failWithMessage("\nExpecting that actual AddRequest is use hydra priorities but is not.");
        }

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

    /**
     * Verifies that the actual AddRequest is not use hydra priorities.
     *
     * @return this assertion object.
     * @throws AssertionError - if the actual AddRequest is use hydra priorities.
     */
    public S isNotUseHydraPriorities() {
        // check that actual AddRequest we want to make assertions on is not null.
        isNotNull();

        // check that property call/field access is false
        if (actual.isUseHydraPriorities()) {
            failWithMessage("\nExpecting that actual AddRequest is not use hydra priorities but is.");
        }

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

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

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

        // null safe check
        String actualXdarrApiKey = actual.getXdarrApiKey();
        if (!Objects.areEqual(actualXdarrApiKey, xdarrApiKey)) {
            failWithMessage(assertjErrorMessage, actual, xdarrApiKey, actualXdarrApiKey);
        }

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

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

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

        // null safe check
        String actualXdarrHost = actual.getXdarrHost();
        if (!Objects.areEqual(actualXdarrHost, xdarrHost)) {
            failWithMessage(assertjErrorMessage, actual, xdarrHost, actualXdarrHost);
        }

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

}
