using System; using System.Text; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.Data; using TShockAPI; using Community.CsharpSqlite.SQLiteClient; using TShockAPI.DB; using Microsoft.Xna.Framework; namespace UnitTests { /// /// Summary description for RegionManagerTest /// [TestClass] public class RegionManagerTest { public static IDbConnection DB; public static RegionManager manager; [TestInitialize] public void Initialize() { TShock.Config = new ConfigFile(); TShock.Config.StorageType = "sqlite"; DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite")); DB.Open(); manager = new RegionManager(DB); manager.ReloadForUnitTest("test"); } [TestMethod] public void AddRegion() { Region r = new Region( new Rectangle(100,100,100,100), "test", 1, "test"); Assert.IsTrue(manager.AddRegion(r.RegionArea.X, r.RegionArea.Y, r.RegionArea.Width, r.RegionArea.Height, r.RegionName, r.RegionWorldID)); Assert.AreEqual(1, manager.Regions.Count); Assert.IsNotNull(manager.getRegion("test")); Region r2 = new Region(new Rectangle(201, 201, 100, 100), "test2", 1, "test"); manager.AddRegion(r2.RegionArea.X, r2.RegionArea.Y, r2.RegionArea.Width, r2.RegionArea.Height, r2.RegionName, r2.RegionWorldID); Assert.AreEqual(2, manager.Regions.Count); Assert.IsNotNull(manager.getRegion("test2")); } [TestMethod] public void DeleteRegion() { Assert.IsTrue(2 == manager.Regions.Count); Assert.IsTrue(manager.DeleteRegion("test")); Assert.IsTrue(1 == manager.Regions.Count); Assert.IsTrue(manager.DeleteRegion("test2")); Assert.IsTrue(0 == manager.Regions.Count); } [TestMethod] public void InRegion() { Assert.IsTrue(manager.InArea(100, 100)); Assert.IsTrue(manager.InArea(150, 150)); Assert.IsTrue(manager.InArea(200, 200)); Assert.IsTrue(manager.InArea(201, 201)); Assert.IsTrue(manager.InArea(251, 251)); Assert.IsTrue(manager.InArea(301, 301)); Assert.IsFalse(manager.InArea(311, 311)); Assert.IsFalse(manager.InArea(99, 99)); } [TestMethod] public void SetRegionState() { Assert.IsTrue(manager.getRegion("test").DisableBuild == 1); manager.SetRegionStateTest("test", "test", false); Assert.IsTrue(manager.getRegion("test").DisableBuild == 0); manager.SetRegionStateTest("test", "test", true); Assert.IsTrue(manager.getRegion("test").DisableBuild == 1); Assert.IsTrue(manager.getRegion("test2").DisableBuild == 1); manager.SetRegionStateTest("test2", "test", false); Assert.IsTrue(manager.getRegion("test2").DisableBuild == 0); manager.SetRegionStateTest("test2", "test", true); Assert.IsTrue(manager.getRegion("test2").DisableBuild == 1); } [TestMethod] public void CanBuild() { /** * For now, this test is useless. Need to implement user groups so we can alter Canbuild permission. */ TSPlayer t = new TSPlayer(0); Assert.IsFalse( manager.CanBuild( 100,100,t) ); } [TestMethod] public void AddUser() { /** * For now, this test is useless. Need to implement users so we have names to get ids from. */ } [TestMethod] public void ListID() { Assert.IsTrue(RegionManager.ListIDs("1,2,3,4,5").Count == 5); Assert.IsTrue(RegionManager.ListIDs("").Count == 0); } [TestMethod] public void ListRegions() { //needs a little more work. } [TestCleanup] public void Cleanup() { DB.Close(); } } }