summaryrefslogtreecommitdiffstats
path: root/Essentials/test/com/earth2me/essentials/UserTest.java
blob: c1386cfab6d941fba3f9044912710ac16fd43d3b (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.earth2me.essentials;

import java.io.IOException;
import java.math.BigDecimal;
import junit.framework.TestCase;
import net.ess3.api.MaxMoneyException;
import org.bukkit.Location;
import org.bukkit.World.Environment;
import org.bukkit.plugin.InvalidDescriptionException;


public class UserTest extends TestCase
{
	private final OfflinePlayer base1;
	private final Essentials ess;
	private final FakeServer server;

	public UserTest(String testName)
	{
		super(testName);
		server = new FakeServer();
		server.createWorld("testWorld", Environment.NORMAL);
		ess = new Essentials(server);
		try
		{
			ess.setupForTesting(server);
		}
		catch (InvalidDescriptionException ex)
		{
			fail("InvalidDescriptionException");
		}
		catch (IOException ex)
		{
			fail("IOException");
		}
		base1 = server.createPlayer("testPlayer1", ess);
		server.addPlayer(base1);
		ess.getUser(base1);
	}

	private void should(String what)
	{
		System.out.println(getName() + " should " + what);
	}

	public void testUpdate()
	{
		OfflinePlayer base1alt = server.createPlayer(base1.getName(), ess);
		assertEquals(base1alt, ess.getUser(base1alt).getBase());
	}

	public void testHome()
	{
		User user = ess.getUser(base1);
		Location loc = base1.getLocation();
		user.setHome("home", loc);
		OfflinePlayer base2 = server.createPlayer(base1.getName(), ess);
		User user2 = ess.getUser(base2);

		Location home = user2.getHome(loc);
		assertNotNull(home);
		assertEquals(loc.getWorld().getName(), home.getWorld().getName());
		assertEquals(loc.getX(), home.getX());
		assertEquals(loc.getY(), home.getY());
		assertEquals(loc.getZ(), home.getZ());
		assertEquals(loc.getYaw(), home.getYaw());
		assertEquals(loc.getPitch(), home.getPitch());
	}

	public void testMoney()
	{
		should("properly set, take, give, and get money");
		User user = ess.getUser(base1);
		BigDecimal i = new BigDecimal("100.5");
		try
		{
			user.setMoney(i);
			user.takeMoney(new BigDecimal(50));
			i = i.subtract(BigDecimal.valueOf(50));
			user.giveMoney(new BigDecimal(25));
			i = i.add(BigDecimal.valueOf(25));
		}
		catch (MaxMoneyException ex)
		{
			fail();
		}
		
		assertEquals(user.getMoney(), i);
	}

	public void testGetGroup()
	{
		should("return the default group");
		User user = ess.getUser(base1);
		assertEquals(user.getGroup(), "default");
	}
}