Merge remote-tracking branch 'runelite/master'
This commit is contained in:
@@ -43,7 +43,6 @@ import org.junit.runner.RunWith;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@@ -86,6 +85,7 @@ public class ChatMessageManagerTest
|
||||
""
|
||||
};
|
||||
istack = new int[]{
|
||||
0, // splitpmbox
|
||||
1
|
||||
};
|
||||
when(client.getStringStack()).thenReturn(sstack);
|
||||
@@ -183,12 +183,8 @@ public class ChatMessageManagerTest
|
||||
.append("%)")
|
||||
.build();
|
||||
|
||||
MessageNode messageNode = mock(MessageNode.class);
|
||||
when(messageNode.getType()).thenReturn(ChatMessageType.FRIENDSCHATNOTIFICATION);
|
||||
when(messageNode.getRuneLiteFormatMessage()).thenReturn(chatMessage);
|
||||
String formattedMessage = chatMessageManager.formatRuneLiteMessage(chatMessage, ChatMessageType.FRIENDSCHATNOTIFICATION, false);
|
||||
|
||||
chatMessageManager.update(messageNode);
|
||||
|
||||
verify(messageNode).setValue("<col=000000>Total points: <col=ff0000>42<col=000000>, Personal points: <col=ff0000>43<col=000000> (<col=ff0000>44<col=000000>%)");
|
||||
assertEquals("<col=000000>Total points: <col=ff0000>42<col=000000>, Personal points: <col=ff0000>43<col=000000> (<col=ff0000>44<col=000000>%)", formattedMessage);
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,6 @@ import static net.runelite.api.widgets.WidgetID.DIARY_QUEST_GROUP_ID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.chat.ChatClient;
|
||||
import net.runelite.client.chat.ChatCommandManager;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ChatColorConfig;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.config.RuneLiteConfig;
|
||||
@@ -105,10 +104,6 @@ public class ChatCommandsPluginTest
|
||||
@Bind
|
||||
HiscoreClient hiscoreClient;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
ChatMessageManager chatMessageManager;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
ChatClient chatClient;
|
||||
|
||||
@@ -37,14 +37,13 @@ import net.runelite.api.MessageNode;
|
||||
import net.runelite.api.Player;
|
||||
import net.runelite.api.events.ChatMessage;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.util.Text;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.Mockito.lenient;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
@@ -63,10 +62,6 @@ public class ChatNotificationsPluginTest
|
||||
@Bind
|
||||
private ChatNotificationsConfig config;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
private ChatMessageManager chatMessageManager;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
private Notifier notifier;
|
||||
@@ -307,7 +302,7 @@ public class ChatNotificationsPluginTest
|
||||
ChatMessage chatMessage = new ChatMessage(messageNode, ChatMessageType.GAMEMESSAGE, "", "", "", 0);
|
||||
chatNotificationsPlugin.onChatMessage(chatMessage);
|
||||
|
||||
verify(messageNode).setValue("<colHIGHLIGHT><u>Logic Knot</u></col> received a drop: Adamant longsword");
|
||||
verify(messageNode).setValue("<colHIGHLIGHT><u>Logic Knot</u><colNORMAL> received a drop: Adamant longsword");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -54,7 +54,6 @@ import net.runelite.api.widgets.WidgetInfo;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.chat.ChatClient;
|
||||
import net.runelite.client.chat.ChatCommandManager;
|
||||
import net.runelite.client.chat.ChatMessageManager;
|
||||
import net.runelite.client.config.ConfigManager;
|
||||
import net.runelite.client.game.ItemManager;
|
||||
import net.runelite.client.game.npcoverlay.NpcOverlayService;
|
||||
@@ -158,10 +157,6 @@ public class SlayerPluginTest
|
||||
@Bind
|
||||
Notifier notifier;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
ChatMessageManager chatMessageManager;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
ChatCommandManager chatCommandManager;
|
||||
@@ -788,14 +783,15 @@ public class SlayerPluginTest
|
||||
when(slayerConfig.taskCommand()).thenReturn(true);
|
||||
when(chatClient.getTask(anyString())).thenReturn(task);
|
||||
|
||||
MessageNode messageNode = mock(MessageNode.class);
|
||||
ChatMessage setMessage = new ChatMessage();
|
||||
setMessage.setType(ChatMessageType.PUBLICCHAT);
|
||||
setMessage.setName("Adam");
|
||||
setMessage.setMessageNode(mock(MessageNode.class));
|
||||
setMessage.setMessageNode(messageNode);
|
||||
|
||||
slayerPlugin.taskLookup(setMessage, "!task");
|
||||
|
||||
verify(chatMessageManager).update(any(MessageNode.class));
|
||||
verify(messageNode).setRuneLiteFormatMessage(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -810,14 +806,15 @@ public class SlayerPluginTest
|
||||
when(slayerConfig.taskCommand()).thenReturn(true);
|
||||
when(chatClient.getTask(anyString())).thenReturn(task);
|
||||
|
||||
MessageNode messageNode = mock(MessageNode.class);
|
||||
ChatMessage chatMessage = new ChatMessage();
|
||||
chatMessage.setType(ChatMessageType.PUBLICCHAT);
|
||||
chatMessage.setName("Adam");
|
||||
chatMessage.setMessageNode(mock(MessageNode.class));
|
||||
chatMessage.setMessageNode(messageNode);
|
||||
|
||||
slayerPlugin.taskLookup(chatMessage, "!task");
|
||||
|
||||
verify(chatMessageManager, never()).update(any(MessageNode.class));
|
||||
verify(messageNode, never()).setRuneLiteFormatMessage(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Copyright (c) 2019, Kusha Gharahi<kusha.me>
|
||||
* Copyright (c) 2019, Adam <Adam@sigterm.info>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package net.runelite.client.plugins.wintertodt;
|
||||
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.testing.fieldbinder.Bind;
|
||||
import com.google.inject.testing.fieldbinder.BoundFieldModule;
|
||||
import javax.inject.Inject;
|
||||
import net.runelite.api.Client;
|
||||
import net.runelite.api.Varbits;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.client.Notifier;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class WintertodtPluginTest
|
||||
{
|
||||
@Inject
|
||||
WintertodtPlugin wintertodtPlugin;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
WintertodtConfig config;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
WintertodtOverlay wintertodtOverlay;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
OverlayManager overlayManager;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
Notifier notifier;
|
||||
|
||||
@Mock
|
||||
@Bind
|
||||
Client client;
|
||||
|
||||
@Before
|
||||
public void before()
|
||||
{
|
||||
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchStartingNotification_shouldNotify_when15SecondsOptionSelected()
|
||||
{
|
||||
when(config.roundNotification()).thenReturn(15);
|
||||
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(35);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
//(15 * 50) / 30 = ~25
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(25);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
|
||||
verify(notifier, times(1)).notify("Wintertodt round is about to start");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchStartingNotification_shouldNotify_when10SecondsOptionSelected()
|
||||
{
|
||||
when(config.roundNotification()).thenReturn(10);
|
||||
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(20);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
//(10 * 50) / 30 = ~16
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(16);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
|
||||
verify(notifier, times(1)).notify("Wintertodt round is about to start");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchStartingNotification_shouldNotify_when5SecondsOptionSelected()
|
||||
{
|
||||
when(config.roundNotification()).thenReturn(5);
|
||||
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(10);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
//(5 * 50) / 30 = ~8
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(8);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
|
||||
verify(notifier, times(1)).notify("Wintertodt round is about to start");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchStartingNotification_shouldNotifyOnce()
|
||||
{
|
||||
when(config.roundNotification()).thenReturn(5);
|
||||
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(0);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(10);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(8);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(6);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(5);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(4);
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
|
||||
verify(notifier, times(1)).notify("Wintertodt round is about to start");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void matchStartingNotification_shouldNotNotify_whenNoneOptionSelected()
|
||||
{
|
||||
when(config.roundNotification()).thenReturn(5);
|
||||
when(client.getVar(Varbits.WINTERTODT_TIMER)).thenReturn(25);
|
||||
|
||||
wintertodtPlugin.onVarbitChanged(new VarbitChanged());
|
||||
verify(notifier, times(0)).notify("Wintertodt round is about to start");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user