diff options
author | snowleo <schneeleo@gmail.com> | 2011-11-23 02:43:38 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-11-23 02:43:38 +0100 |
commit | 8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b (patch) | |
tree | 1dd70fe9603ab5eccb3e638ea1a4f8a29caacd0c /Essentials/test | |
parent | e683ce575120334ccc7de6285d12fa9f518b414f (diff) | |
download | Essentials-8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b.tar Essentials-8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b.tar.gz Essentials-8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b.tar.lz Essentials-8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b.tar.xz Essentials-8aaaed2ef8aa09597f76f8aec6f7b2e5b89d111b.zip |
More work on the config code
Diffstat (limited to 'Essentials/test')
-rw-r--r-- | Essentials/test/com/earth2me/essentials/FakeServer.java | 12 | ||||
-rw-r--r-- | Essentials/test/com/earth2me/essentials/StorageTest.java | 122 |
2 files changed, 129 insertions, 5 deletions
diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 0cea89bdc..78b5380a6 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -28,9 +28,17 @@ public class FakeServer implements Server private List<Player> players = new ArrayList<Player>(); private final List<World> worlds = new ArrayList<World>(); + public FakeServer() + { + if (Bukkit.getServer() == null) + { + Bukkit.setServer(this); + } + } + public String getName() { - return "Test Server"; + return "Essentials Fake Server"; } public String getVersion() @@ -576,6 +584,6 @@ public class FakeServer implements Server @Override public String getBukkitVersion() { - throw new UnsupportedOperationException("Not supported yet."); + return "Essentials Fake-Server"; } } diff --git a/Essentials/test/com/earth2me/essentials/StorageTest.java b/Essentials/test/com/earth2me/essentials/StorageTest.java index ada3d703a..e6850ce91 100644 --- a/Essentials/test/com/earth2me/essentials/StorageTest.java +++ b/Essentials/test/com/earth2me/essentials/StorageTest.java @@ -2,32 +2,148 @@ package com.earth2me.essentials; import com.earth2me.essentials.settings.Settings; import com.earth2me.essentials.storage.StorageObject; +import com.earth2me.essentials.storage.YamlStorageReader; +import com.earth2me.essentials.storage.YamlStorageWriter; import java.io.*; import junit.framework.TestCase; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.World.Environment; +import org.bukkit.plugin.InvalidDescriptionException; import org.junit.Test; +import org.yaml.snakeyaml.Yaml; public class StorageTest extends TestCase { + Essentials ess; + FakeServer server; + World world; + + public StorageTest() + { + ess = new Essentials(); + server = new FakeServer(); + world = server.createWorld("testWorld", Environment.NORMAL); + try + { + ess.setupForTesting(server); + } + catch (InvalidDescriptionException ex) + { + fail("InvalidDescriptionException"); + } + catch (IOException ex) + { + fail("IOException"); + } + } + @Test public void testSettings() { assertTrue(StorageObject.class.isAssignableFrom(Settings.class)); + ExecuteTimer ext = new ExecuteTimer(); + ext.start(); final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); final Reader reader = new InputStreamReader(bais); - final Settings settings = StorageObject.load(Settings.class, reader); + final Settings settings = new YamlStorageReader(reader).load(Settings.class); + ext.mark("load empty settings"); + final ByteArrayInputStream bais3 = new ByteArrayInputStream(new byte[0]); + final Reader reader3 = new InputStreamReader(bais3); + final Settings settings3 = new YamlStorageReader(reader3).load(Settings.class); + ext.mark("load empty settings (class cached)"); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final PrintWriter writer = new PrintWriter(baos); - settings.save(writer); + new YamlStorageWriter(writer).save(settings); writer.close(); + ext.mark("write settings"); byte[] written = baos.toByteArray(); System.out.println(new String(written)); final ByteArrayInputStream bais2 = new ByteArrayInputStream(written); final Reader reader2 = new InputStreamReader(bais2); - final Settings settings2 = StorageObject.load(Settings.class, reader2); + final Settings settings2 = new YamlStorageReader(reader2).load(Settings.class); System.out.println(settings.toString()); System.out.println(settings2.toString()); + ext.mark("reload settings"); + System.out.println(ext.end()); //assertEquals("Default and rewritten config should be equal", settings, settings2); //that assertion fails, because empty list and maps return as null } + + @Test + public void testUserdata() + { + FakeServer server = new FakeServer(); + World world = server.createWorld("testWorld", Environment.NORMAL); + ExecuteTimer ext = new ExecuteTimer(); + ext.start(); + final ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]); + final Reader reader = new InputStreamReader(bais); + final com.earth2me.essentials.userdata.UserData userdata = new YamlStorageReader(reader).load(com.earth2me.essentials.userdata.UserData.class); + ext.mark("load empty user"); + final ByteArrayInputStream bais3 = new ByteArrayInputStream(new byte[0]); + final Reader reader3 = new InputStreamReader(bais3); + final com.earth2me.essentials.userdata.UserData userdata3 = new YamlStorageReader(reader3).load(com.earth2me.essentials.userdata.UserData.class); + ext.mark("load empty user (class cached)"); + + for (int j = 0; j < 10000; j++) + { + userdata.getHomes().put("home", new Location(world, j, j, j)); + } + ext.mark("change home 10000 times"); + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + final PrintWriter writer = new PrintWriter(baos); + new YamlStorageWriter(writer).save(userdata); + writer.close(); + ext.mark("write user"); + final ByteArrayOutputStream baos2 = new ByteArrayOutputStream(); + final PrintWriter writer2 = new PrintWriter(baos2); + new YamlStorageWriter(writer2).save(userdata); + writer2.close(); + ext.mark("write user (cached)"); + byte[] written = baos.toByteArray(); + System.out.println(new String(written)); + ext.mark("debug output"); + final ByteArrayInputStream bais2 = new ByteArrayInputStream(written); + final Reader reader2 = new InputStreamReader(bais2); + final com.earth2me.essentials.userdata.UserData userdata2 = new YamlStorageReader(reader2).load(com.earth2me.essentials.userdata.UserData.class); + ext.mark("reload file"); + final ByteArrayInputStream bais4 = new ByteArrayInputStream(written); + final Reader reader4 = new InputStreamReader(bais4); + final com.earth2me.essentials.userdata.UserData userdata4 = new YamlStorageReader(reader4).load(com.earth2me.essentials.userdata.UserData.class); + ext.mark("reload file (cached)"); + System.out.println(userdata.toString()); + System.out.println(userdata2.toString()); + System.out.println(ext.end()); + com.earth2me.essentials.userdata.User test = new com.earth2me.essentials.userdata.User(); + test.example(); + + } + + @Test + public void testOldUserdata() + { + ExecuteTimer ext = new ExecuteTimer(); + ext.start(); + OfflinePlayer base1 = server.createPlayer("testPlayer1", ess); + server.addPlayer(base1); + ext.mark("fake user created"); + UserData user = (UserData)ess.getUser(base1); + ext.mark("load empty user"); + for (int j = 0; j < 1; j++) + { + user.setHome("home", new Location(world, j, j, j)); + } + ext.mark("change home 1 times"); + user.save(); + ext.mark("write user"); + user.save(); + ext.mark("write user (cached)"); + user.reloadConfig(); + ext.mark("reloaded file"); + user.reloadConfig(); + ext.mark("reloaded file (cached)"); + System.out.println(ext.end()); + } } |