A few more tests
This commit is contained in:
parent
1c7d71431f
commit
d515616f72
4 changed files with 161 additions and 54 deletions
|
|
@ -285,6 +285,56 @@ namespace TShockAPI.DB
|
|||
}
|
||||
}
|
||||
|
||||
public void ReloadForUnitTest(String n)
|
||||
{
|
||||
using (var com = database.CreateCommand())
|
||||
{
|
||||
com.CommandText = "SELECT * FROM Regions WHERE WorldID=@worldid";
|
||||
com.AddParameter("@worldid", n);
|
||||
using (var reader = com.ExecuteReader())
|
||||
{
|
||||
Regions.Clear();
|
||||
while (reader.Read())
|
||||
{
|
||||
int X1 = reader.Get<int>("X1");
|
||||
int Y1 = reader.Get<int>("Y1");
|
||||
int height = reader.Get<int>("height");
|
||||
int width = reader.Get<int>("width");
|
||||
int Protected = reader.Get<int>("Protected");
|
||||
string MergedIDs = DbExt.Get<string>(reader, "UserIds");
|
||||
string name = DbExt.Get<string>(reader, "RegionName");
|
||||
System.Console.WriteLine(MergedIDs);
|
||||
string[] SplitIDs = MergedIDs.Split(',');
|
||||
|
||||
Region r = new Region(new Rectangle(X1, Y1, width, height), name, Protected, Main.worldID.ToString());
|
||||
r.RegionAllowedIDs = new int[SplitIDs.Length];
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < SplitIDs.Length; i++)
|
||||
{
|
||||
if (SplitIDs.Length == 1 && SplitIDs[0].Equals(""))
|
||||
{
|
||||
break;
|
||||
}
|
||||
//System.Console.WriteLine(SplitIDs[i]);
|
||||
r.RegionAllowedIDs[i] = Convert.ToInt32(SplitIDs[i]);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error("Your database contains invalid UserIDs (they should be ints).");
|
||||
Log.Error("A lot of things will fail because of this. You must manually delete and re-create the allowed field.");
|
||||
Log.Error(e.Message);
|
||||
Log.Error(e.StackTrace);
|
||||
}
|
||||
|
||||
Regions.Add(r);
|
||||
}
|
||||
reader.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool AddRegion(int tx, int ty, int width, int height, string regionname, string worldid)
|
||||
{
|
||||
try
|
||||
|
|
@ -301,11 +351,9 @@ namespace TShockAPI.DB
|
|||
com.AddParameter("@worldid", worldid);
|
||||
com.AddParameter("@userids", "");
|
||||
com.AddParameter("@protected", 1);
|
||||
if (com.ExecuteNonQuery() > 0)
|
||||
{
|
||||
Regions.Add(new Region(new Rectangle(tx, ty, width, height), regionname, 0, worldid));
|
||||
return true;
|
||||
}
|
||||
com.ExecuteNonQuery();
|
||||
Regions.Add(new Region(new Rectangle(tx, ty, width, height), regionname, 0, worldid));
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -326,7 +374,7 @@ namespace TShockAPI.DB
|
|||
com.AddParameter("@name", name.ToLower());
|
||||
com.AddParameter("@worldid", Main.worldID.ToString());
|
||||
com.ExecuteNonQuery();
|
||||
ReloadAllRegions();
|
||||
Regions.Remove(getRegion(name));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -347,9 +395,31 @@ namespace TShockAPI.DB
|
|||
com.AddParameter("@name", name);
|
||||
com.AddParameter("@bool", state ? 1 : 0);
|
||||
com.AddParameter("@worldid", Main.worldID.ToString());
|
||||
int q = com.ExecuteNonQuery();
|
||||
ReloadAllRegions();
|
||||
return (q > 0);
|
||||
com.ExecuteNonQuery();
|
||||
getRegion(name).DisableBuild = state ? 1 : 0;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool SetRegionStateTest(string name, string world, bool state)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var com = database.CreateCommand())
|
||||
{
|
||||
com.CommandText = "UPDATE Regions SET Protected=@bool WHERE RegionName=@name AND WorldID=@worldid";
|
||||
com.AddParameter("@name", name);
|
||||
com.AddParameter("@bool", state ? 1 : 0);
|
||||
com.AddParameter("@worldid", world);
|
||||
com.ExecuteNonQuery();
|
||||
getRegion(name).DisableBuild = state ? 1 : 0;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -392,7 +462,7 @@ namespace TShockAPI.DB
|
|||
public static List<string> ListIDs(string MergedIDs)
|
||||
{
|
||||
List<string> SplitIDs = new List<string>();
|
||||
var sb = new StringBuilder();
|
||||
/*var sb = new StringBuilder();
|
||||
for (int i = 0; i < MergedIDs.Length; i++)
|
||||
{
|
||||
char c = MergedIDs[i];
|
||||
|
|
@ -406,6 +476,12 @@ namespace TShockAPI.DB
|
|||
SplitIDs.Add(sb.ToString());
|
||||
sb.Clear();
|
||||
}
|
||||
}*/
|
||||
String[] s = MergedIDs.Split(',');
|
||||
for( int i = 0; i < s.Length; i++ )
|
||||
{
|
||||
if (!s[i].Equals(""))
|
||||
SplitIDs.Add(s[i]);
|
||||
}
|
||||
return SplitIDs;
|
||||
}
|
||||
|
|
@ -482,6 +558,16 @@ namespace TShockAPI.DB
|
|||
}
|
||||
return regions;
|
||||
}
|
||||
|
||||
public Region getRegion(String name)
|
||||
{
|
||||
foreach (Region r in Regions)
|
||||
{
|
||||
if (r.RegionName.Equals(name))
|
||||
return r;
|
||||
}
|
||||
return new Region();
|
||||
}
|
||||
}
|
||||
|
||||
public class Region
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ namespace UnitTests
|
|||
public class ItemManagerTest
|
||||
{
|
||||
public static IDbConnection DB;
|
||||
public static ItemManager manager;
|
||||
[TestInitialize]
|
||||
public void Initialize()
|
||||
{
|
||||
|
|
@ -32,33 +33,12 @@ namespace UnitTests
|
|||
|
||||
DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite"));
|
||||
DB.Open();
|
||||
/*try
|
||||
{
|
||||
var hostport = Config.MySqlHost.Split(':');
|
||||
DB = new MySqlConnection();
|
||||
DB.ConnectionString = String.Format("Server='{0}'; Port='{1}'; Database='{2}'; Uid='{3}'; Pwd='{4}';",
|
||||
hostport[0],
|
||||
hostport.Length > 1 ? hostport[1] : "3306",
|
||||
Config.MySqlDbName,
|
||||
Config.MySqlUsername,
|
||||
Config.MySqlPassword
|
||||
);
|
||||
DB.Open();
|
||||
}
|
||||
catch (MySqlException ex)
|
||||
{
|
||||
Log.Error(ex.ToString());
|
||||
throw new Exception("MySql not setup correctly");
|
||||
}*/
|
||||
manager = new ItemManager(DB);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void SQLiteItemTest_AddBan()
|
||||
{
|
||||
//
|
||||
// TODO: Add test logic here
|
||||
//
|
||||
ItemManager manager = new ItemManager(DB);
|
||||
Assert.IsNotNull(manager);
|
||||
Assert.IsFalse( manager.ItemIsBanned("Dirt Block"), "Item isn't banned" );
|
||||
manager.AddNewBan("Dirt Block");
|
||||
|
|
@ -74,10 +54,7 @@ namespace UnitTests
|
|||
[TestMethod]
|
||||
public void SQLiteItemTest_RemoveBan()
|
||||
{
|
||||
//
|
||||
// TODO: Add test logic here
|
||||
//
|
||||
ItemManager manager = new ItemManager(DB);
|
||||
manager = new ItemManager(DB);
|
||||
Assert.IsNotNull(manager);
|
||||
Assert.AreEqual(2, manager.ItemBans.Count);
|
||||
manager.AddNewBan("Dirt Block");
|
||||
|
|
|
|||
|
|
@ -29,51 +29,91 @@ namespace UnitTests
|
|||
DB.Open();
|
||||
|
||||
manager = new RegionManager(DB);
|
||||
manager.ReloadForUnitTest("test");
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void AddRegion()
|
||||
{
|
||||
Region r = new Region( new Rectangle(100,100,100,100), "test", 0, "test world");
|
||||
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", 0, "test world");
|
||||
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.AreEqual(0, manager.Regions.Count);
|
||||
Assert.IsTrue(0 == manager.Regions.Count);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void InRegion()
|
||||
{
|
||||
//
|
||||
// TODO: Add test logic here
|
||||
//
|
||||
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 TestMethod2()
|
||||
public void SetRegionState()
|
||||
{
|
||||
//
|
||||
// TODO: Add test logic here
|
||||
//
|
||||
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 TestMethod3()
|
||||
public void CanBuild()
|
||||
{
|
||||
//
|
||||
// TODO: Add test logic here
|
||||
//
|
||||
/**
|
||||
* 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]
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<OrderedTest name="RegionManagerTest" storage="c:\users\virus\git\tshock\unittests\regionmanagertest.orderedtest" id="7601a790-d2fb-45d2-a612-1ae4de84eb61" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<OrderedTest name="regionmanagertest" storage="c:\users\virus\git\tshock\unittests\regionmanagertest.orderedtest" id="7601a790-d2fb-45d2-a612-1ae4de84eb61" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
|
||||
<Execution id="e2bb6bb7-7bc7-43d5-bb81-e2d13d377599" />
|
||||
<TestLinks>
|
||||
<TestLink id="8d92e80b-8c9d-7a14-5c3a-eba6790be784" name="AddRegion" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="a8d03dce-530d-a255-9115-3b783c8a973c" name="DeleteRegion" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="57686a56-2684-8c17-1564-ed9a3c37b167" name="InRegion" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="c77a874e-5605-7aec-f487-110deaa7fafb" name="TestMethod2" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="521a8e25-1f75-066f-b839-56fee4f2a1b1" name="TestMethod3" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="05a473bf-6457-6122-6150-b1aa82e8f869" name="SetRegionState" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="999dec4b-8a9b-3d06-02fb-622ecb449e82" name="CanBuild" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="80e781d1-fd68-212a-9099-8791ad55ed9f" name="AddUser" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="dc9d05c0-db88-716a-bbe0-aff585f7681d" name="ListID" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="e13e8546-b310-71c3-e068-1ecd18bfec8f" name="ListRegions" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<TestLink id="a8d03dce-530d-a255-9115-3b783c8a973c" name="DeleteRegion" storage="bin\release\unittests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
</TestLinks>
|
||||
</OrderedTest>
|
||||
Loading…
Add table
Add a link
Reference in a new issue