package me.gnat008.perworldinventory.commands; import me.gnat008.perworldinventory.PerWorldInventory; import me.gnat008.perworldinventory.config.Settings; import me.gnat008.perworldinventory.groups.GroupManager; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import java.util.Collections; import static org.hamcrest.Matchers.containsString; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.hamcrest.MockitoHamcrest.argThat; /** * Tests for {@link ReloadCommand}. */ @RunWith(MockitoJUnitRunner.class) public class ReloadCommandTest { @InjectMocks private ReloadCommand command; @Mock private PerWorldInventory plugin; @Mock private GroupManager groupManager; @Mock private Settings settings; @Test public void shouldPerformReload() { // given Player player = mock(Player.class); FileConfiguration worldsConfig = mock(FileConfiguration.class); given(plugin.getWorldsConfig()).willReturn(worldsConfig); // when command.executeCommand(player, Collections.emptyList()); // then verify(player).sendMessage(argThat(containsString("Configuration files reloaded"))); verify(settings).reload(); verify(plugin).reload(); verify(groupManager).loadGroupsToMemory(worldsConfig); } }