@Test public void shouldSavePlayerData() { // given Player player = mock(Player.class); UUID uuid = UUID.nameUUIDFromBytes("New player".getBytes()); given(player.getUniqueId()).willReturn(uuid); given(permissionsManager.getPrimaryGroup(player)).willReturn("primary-grp"); given(player.isOp()).willReturn(true); given(player.getWalkSpeed()).willReturn(1.2f); given(player.getFlySpeed()).willReturn(0.8f); given(player.getAllowFlight()).willReturn(true); World world = mock(World.class); given(world.getName()).willReturn("player-world"); Location location = new Location(world, 0.2, 102.25, -89.28, 3.02f, 90.13f); given(spawnLoader.getPlayerLocationOrSpawn(player)).willReturn(location); // when limboPlayerStorage.saveData(player); // then File playerFile = new File(dataFolder, FileUtils.makePath("playerdata", uuid.toString(), "data.json")); assertThat(playerFile.exists(), equalTo(true)); // TODO ljacqu 20160711: Check contents of file }
@Test public void shouldHandleUnknownBase() { // given List<String> parts = asList("bogus", "label1", "arg1"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getResultStatus(), equalTo(FoundResultStatus.MISSING_BASE_COMMAND)); assertThat(result.getCommandDescription(), nullValue()); }
/** In contrast to the previous test, we test a command request with a very apart label. */ @Test public void shouldSuggestMostSimilarCommand() { // given List<String> parts = asList("authme", "asdfawetawty4asdca"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getCommandDescription(), not(nullValue())); assertThat(result.getResultStatus(), equalTo(FoundResultStatus.UNKNOWN_LABEL)); assertThat(result.getDifference() > 0.75, equalTo(true)); assertThat(result.getLabels(), equalTo(parts)); assertThat(result.getArguments(), empty()); }
@Test public void shouldReturnChildlessBaseCommandWithArgCountError() { // given List<String> parts = asList("unregistER", "player1", "wrongArg"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getResultStatus(), equalTo(FoundResultStatus.INCORRECT_ARGUMENTS)); assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "unregister"))); assertThat(result.getDifference(), equalTo(0.0)); assertThat(result.getArguments(), contains("player1", "wrongArg")); assertThat(result.getLabels(), contains("unregistER")); }
@Test public void shouldMapToBaseWithProperArguments() { // given List<String> parts = asList("Unreg", "player1"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getResultStatus(), equalTo(FoundResultStatus.SUCCESS)); assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "unregister"))); assertThat(result.getDifference(), equalTo(0.0)); assertThat(result.getArguments(), contains("player1")); assertThat(result.getLabels(), contains("Unreg")); }
@Test public void shouldHandleBaseWithWrongArguments() { // given List<String> parts = singletonList("unregister"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getResultStatus(), equalTo(FoundResultStatus.INCORRECT_ARGUMENTS)); assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "unregister"))); assertThat(result.getDifference(), equalTo(0.0)); assertThat(result.getArguments(), empty()); assertThat(result.getLabels(), equalTo(parts)); }
@Test public void shouldMapPartsToCommandWithNoCaseSensitivity() { // given List<String> parts = asList("Authme", "REG", "arg1", "arg2"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "authme", "register"))); assertThat(result.getResultStatus(), equalTo(FoundResultStatus.SUCCESS)); assertThat(result.getLabels(), equalTo(parts.subList(0, 2))); assertThat(result.getArguments(), contains("arg1", "arg2")); assertThat(result.getDifference(), equalTo(0.0)); }
@Test public void shouldPassCommandPathAsArgumentsToHelpCommand() { // given List<String> parts = asList("email", "helptest", "arg1"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat(result.getResultStatus(), equalTo(FoundResultStatus.SUCCESS)); assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "email", "helptest"))); assertThat(result.getLabels(), contains("email", "helptest")); assertThat(result.getArguments(), contains("email", "arg1")); assertThat(result.getDifference(), equalTo(0.0)); }
@Test public void shouldSuggestCommandWithSimilarLabel() { // given List<String> parts = asList("authme", "reh", "pass123", "pass123"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "authme", "register"))); assertThat(result.getResultStatus(), equalTo(FoundResultStatus.UNKNOWN_LABEL)); assertThat(result.getDifference() < 0.75, equalTo(true)); assertThat(result.getLabels(), equalTo(parts.subList(0, 2))); assertThat(result.getArguments(), contains("pass123", "pass123")); }
@Test public void shouldRejectCommandWithTooManyArguments() { // given List<String> parts = asList("authme", "register", "pass123", "pass123", "pass123"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))).willReturn(true); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "authme", "register"))); assertThat(result.getResultStatus(), equalTo(FoundResultStatus.INCORRECT_ARGUMENTS)); assertThat(result.getDifference(), equalTo(0.0)); assertThat(result.getLabels(), equalTo(parts.subList(0, 2))); assertThat(result.getArguments(), equalTo(parts.subList(2, 5))); }
@Test public void shouldRecognizeMissingPermissionForCommand() { // given List<String> parts = asList("authme", "login", "test1"); CommandSender sender = mock(CommandSender.class); given(permissionsManager.hasPermission(eq(sender), any(PermissionNode.class))) .willReturn(false); // when FoundCommandResult result = mapper.mapPartsToCommand(sender, parts); // then assertThat( result.getCommandDescription(), equalTo(getCommandWithLabel(commands, "authme", "login"))); assertThat(result.getResultStatus(), equalTo(FoundResultStatus.NO_PERMISSION)); assertThat(result.getArguments(), contains("test1")); assertThat(result.getDifference(), equalTo(0.0)); assertThat(result.getLabels(), equalTo(parts.subList(0, 2))); assertThat(result.getArguments(), contains(parts.get(2))); }