aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/de/hysky/skyblocker/skyblock/StatusBarTrackerTest.java
blob: c058da5db2a378736da9fc499a1981bd1f3ce79a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package de.hysky.skyblocker.skyblock;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class StatusBarTrackerTest {
    private StatusBarTracker tracker;

    @BeforeEach
    void setUp() {
        tracker = new StatusBarTracker();
    }

    void assertStats(int hp, int maxHp, int def, int mana, int maxMana, int overflowMana) {
        int absorption = 0;
        if(hp > maxHp) {
            absorption = hp - maxHp;
            hp -= absorption;
            if(absorption > maxHp)
                absorption = maxHp;
        }
        assertEquals(new StatusBarTracker.Resource(hp, maxHp, absorption), tracker.getHealth());
        assertEquals(new StatusBarTracker.Resource(mana, maxMana, overflowMana), tracker.getMana());
    }

    @Test
    void normalStatusBar() {
        String res = tracker.update("§c934/1086❤     §a159§a❈ Defense     §b562/516✎ Mana", false);
        assertNull(res);
        assertStats(934, 1086, 159, 562, 516, 0);
    }

    @Test
    void overflowMana() {
        String res = tracker.update("§61605/1305❤     §a270§a❈ Defense     §b548/548✎ §3200ʬ", false);
        assertNull(res);
        assertStats(1605, 1305, 270, 548, 548, 200);
    }

    @Test
    void regeneration() {
        String res = tracker.update("§c2484/2484❤+§c120▄     §a642§a❈ Defense     §b2557/2611✎ Mana", false);
        assertEquals("§c❤+§c120▄", res);
    }

    @Test
    void instantTransmission() {
        String actionBar = "§c2259/2259❤     §b-20 Mana (§6Instant Transmission§b)     §b549/2676✎ Mana";
        assertEquals("§b-20 Mana (§6Instant Transmission§b)", tracker.update(actionBar, false));
        assertNull(tracker.update(actionBar, true));
    }

    @Test
    void rapidFire() {
        String actionBar = "§c2509/2509❤     §b-48 Mana (§6Rapid-fire§b)     §b2739/2811✎ Mana";
        assertEquals("§b-48 Mana (§6Rapid-fire§b)", tracker.update(actionBar, false));
        assertNull(tracker.update(actionBar, true));
    }

    @Test
    void zombieSword() {
        String actionBar = "§c2509/2509❤     §b-56 Mana (§6Instant Heal§b)     §b2674/2821✎ Mana    §e§lⓩⓩⓩⓩ§6§lⓄ";
        assertEquals("§b-56 Mana (§6Instant Heal§b)     §e§lⓩⓩⓩⓩ§6§lⓄ", tracker.update(actionBar, false));
        assertEquals("§e§lⓩⓩⓩⓩ§6§lⓄ", tracker.update(actionBar, true));
    }

    @Test
    void campfire() {
        String res = tracker.update("§c17070/25565❤+§c170▃   §65,625 DPS   §c1 second     §b590/626✎ §3106ʬ", false);
        assertEquals("§c❤+§c170▃   §65,625 DPS   §c1 second", res);
    }
}