AuthMe/AuthMeReloaded

View on GitHub
src/test/java/fr/xephi/authme/service/BukkitServiceTestHelper.java

Summary

Maintainability
A
0 mins
Test Coverage
package fr.xephi.authme.service;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.doAnswer;

/**
 * Offers utility methods for testing involving a {@link BukkitService} mock.
 */
public final class BukkitServiceTestHelper {

    private BukkitServiceTestHelper() {
    }

    /**
     * Sets a BukkitService mock to run any Runnable it is passed to its method
     * {@link BukkitService#scheduleSyncTaskFromOptionallyAsyncTask}.
     *
     * @param bukkitService the mock to set behavior on
     */
    public static void setBukkitServiceToScheduleSyncTaskFromOptionallyAsyncTask(BukkitService bukkitService) {
        doAnswer(invocation -> {
            Runnable runnable = invocation.getArgument(0);
            runnable.run();
            return null;
        }).when(bukkitService).scheduleSyncTaskFromOptionallyAsyncTask(any(Runnable.class));
    }

    /**
     * Sets a BukkitService mock to run any Runnable it is passed to its method
     * {@link BukkitService#runTaskAsynchronously}.
     *
     * @param bukkitService the mock to set behavior on
     */
    public static void setBukkitServiceToRunTaskAsynchronously(BukkitService bukkitService) {
        doAnswer(invocation -> {
            Runnable runnable = invocation.getArgument(0);
            runnable.run();
            return null;
        }).when(bukkitService).runTaskAsynchronously(any(Runnable.class));
    }

    /**
     * Sets a BukkitService mock to run any Runnable it is passed to its method
     * {@link BukkitService#runTaskOptionallyAsync}.
     *
     * @param bukkitService the mock to set behavior on
     */
    public static void setBukkitServiceToRunTaskOptionallyAsync(BukkitService bukkitService) {
        doAnswer(invocation -> {
            Runnable runnable = invocation.getArgument(0);
            runnable.run();
            return null;
        }).when(bukkitService).runTaskOptionallyAsync(any(Runnable.class));
    }

    /**
     * Sets a BukkitService mock to run any Runnable it is passed to its method
     * {@link BukkitService#scheduleSyncDelayedTask(Runnable)}.
     *
     * @param bukkitService the mock to set behavior on
     */
    public static void setBukkitServiceToScheduleSyncDelayedTask(BukkitService bukkitService) {
        doAnswer(invocation -> {
            Runnable runnable = invocation.getArgument(0);
            runnable.run();
            return null;
        }).when(bukkitService).scheduleSyncDelayedTask(any(Runnable.class));
    }

    /**
     * Sets a BukkitService mock to run any Runnable it is passed to its method
     * {@link BukkitService#scheduleSyncDelayedTask(Runnable, long)}.
     *
     * @param bukkitService the mock to set behavior on
     */
    public static void setBukkitServiceToScheduleSyncDelayedTaskWithDelay(BukkitService bukkitService) {
        doAnswer(invocation -> {
            Runnable runnable = invocation.getArgument(0);
            runnable.run();
            return null;
        }).when(bukkitService).scheduleSyncDelayedTask(any(Runnable.class), anyLong());
    }
}