diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 5ba4201e..5ae8fe76 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -1193,13 +1193,18 @@ namespace TShockAPI
{
if (args.Parameters.Count > 0)
{
- String groupname = args.Parameters[0];
+ /*String groupname = args.Parameters[0];
args.Parameters.RemoveAt(0);
String permissions = String.Join(",", args.Parameters );
String response = TShock.Groups.addGroup(groupname, permissions);
if( response.Length > 0 )
- args.Player.SendMessage(response, Color.Green);
+ args.Player.SendMessage(response, Color.Green);*/
+
+ TShock.Itembans.AddNewBan("Gold Coin");
+ Console.WriteLine(String.Join(",", TShock.Itembans.ItemBans));
+ TShock.Itembans.RemoveBan("Gold Coin");
+ Console.WriteLine(String.Join(",", TShock.Itembans.ItemBans));
}
else
{
diff --git a/TShockAPI/DB/ItemManager.cs b/TShockAPI/DB/ItemManager.cs
index 3f3e985c..b59a8881 100644
--- a/TShockAPI/DB/ItemManager.cs
+++ b/TShockAPI/DB/ItemManager.cs
@@ -88,7 +88,8 @@ namespace TShockAPI.DB
com.CommandText = "INSERT INTO ItemBans (ItemName) VALUES (@itemname);";
com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery();
- ItemBans.Add(itemname);
+ if( !ItemIsBanned( itemname ) )
+ ItemBans.Add(itemname);
}
}
catch (Exception ex)
@@ -99,18 +100,25 @@ namespace TShockAPI.DB
public void RemoveBan(string itemname)
{
+ if (ItemIsBanned(itemname))
+ return;
+ else
+ {
+ ItemBans.Remove(itemname);
+ }
try
{
using (var com = database.CreateCommand())
{
- com.CommandText = "DELETE FROM ItemBans WHERE ItemName=@itemname;";
+ com.CommandText = "Delete FROM 'ItemBans' WHERE ItemName=@itemname;";
com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery();
- ItemBans.Remove(itemname);
+
}
}
catch (Exception ex)
{
+ ItemBans.Remove(itemname);
Log.Error(ex.ToString());
}
}
diff --git a/UnitTests/UnitTest1.cs b/UnitTests/ItemManagerTest.cs
similarity index 58%
rename from UnitTests/UnitTest1.cs
rename to UnitTests/ItemManagerTest.cs
index 4f6d826c..7b149e9b 100644
--- a/UnitTests/UnitTest1.cs
+++ b/UnitTests/ItemManagerTest.cs
@@ -21,7 +21,7 @@ namespace UnitTests
/// Summary description for UnitTest1
///
[TestClass]
- public class UnitTest1
+ public class ItemManagerTest
{
public static IDbConnection DB;
[TestInitialize]
@@ -30,8 +30,8 @@ namespace UnitTests
TShock.Config = new ConfigFile();
TShock.Config.StorageType = "sqlite";
- UnitTest1.DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite"));
- UnitTest1.DB.Open();
+ DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite"));
+ DB.Open();
/*try
{
var hostport = Config.MySqlHost.Split(':');
@@ -53,27 +53,51 @@ namespace UnitTests
}
[TestMethod]
- public void SQLiteItemTest()
+ public void SQLiteItemTest_AddBan()
{
//
// TODO: Add test logic here
//
ItemManager manager = new ItemManager(DB);
Assert.IsNotNull(manager);
- Assert.AreEqual( false, manager.ItemIsBanned("Dirt Block") );
+ Assert.AreEqual( false, manager.ItemIsBanned("Dirt Block"), "Item isn't banned" );
manager.AddNewBan("Dirt Block");
- Assert.AreEqual(true, manager.ItemIsBanned("Dirt Block"));
- Assert.AreEqual(false, manager.ItemIsBanned("Green Brick"));
+ Assert.AreEqual(true, manager.ItemIsBanned("Dirt Block"), "New item is added");
+ Assert.AreEqual(false, manager.ItemIsBanned("Green Brick"), "Item isn't banned");
manager.AddNewBan("Green Brick");
+ Assert.AreEqual(true, manager.ItemIsBanned("Green Brick"), "New item is added");
+ Assert.AreEqual(2, manager.ItemBans.Count, "Adding both items");
+ manager.AddNewBan("Green Brick" );
+ Assert.AreEqual(2, manager.ItemBans.Count, "Adding duplicate items");
+ }
+
+ [TestMethod]
+ public void SQLiteItemTest_RemoveBan()
+ {
+ //
+ // TODO: Add test logic here
+ //
+ ItemManager manager = new ItemManager(DB);
+ Assert.IsNotNull(manager);
+ Assert.AreEqual(2, manager.ItemBans.Count);
+ manager.AddNewBan("Dirt Block");
+ Assert.AreEqual(2, manager.ItemBans.Count);
+ Assert.AreEqual(true, manager.ItemIsBanned("Dirt Block"));
+ manager.RemoveBan("Dirt Block");
+ manager.UpdateItemBans();
+ Assert.AreEqual(1, manager.ItemBans.Count);
+ Assert.AreEqual(false, manager.ItemIsBanned("Dirt Block"));
+ manager.RemoveBan("Dirt Block");
+ Assert.AreEqual(false, manager.ItemIsBanned("Dirt Block"));
Assert.AreEqual(true, manager.ItemIsBanned("Green Brick"));
- //manager.UpdateItemBans();
- //Assert.AreEqual(false, manager.ItemIsBanned("Dirt Block"));
- DB.Close();
+ manager.RemoveBan("Green Brick");
+ Assert.AreEqual(false, manager.ItemIsBanned("Green Brick"));
}
[TestCleanup]
public void Cleanup()
{
+ DB.Close();
}
}
}
diff --git a/UnitTests/ItemManagerTest.orderedtest b/UnitTests/ItemManagerTest.orderedtest
new file mode 100644
index 00000000..eeb19a9e
--- /dev/null
+++ b/UnitTests/ItemManagerTest.orderedtest
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj
index 6f78bf1e..10392952 100644
--- a/UnitTests/UnitTests.csproj
+++ b/UnitTests/UnitTests.csproj
@@ -64,7 +64,7 @@
-
+
@@ -72,6 +72,11 @@
TShockAPI
+
+
+ Always
+
+