push for shank

This commit is contained in:
Zack Piispanen 2011-07-23 16:59:29 -04:00
parent 0162186416
commit 347d701b7f
5 changed files with 65 additions and 16 deletions

View file

@ -1193,13 +1193,18 @@ namespace TShockAPI
{ {
if (args.Parameters.Count > 0) if (args.Parameters.Count > 0)
{ {
String groupname = args.Parameters[0]; /*String groupname = args.Parameters[0];
args.Parameters.RemoveAt(0); args.Parameters.RemoveAt(0);
String permissions = String.Join(",", args.Parameters ); String permissions = String.Join(",", args.Parameters );
String response = TShock.Groups.addGroup(groupname, permissions); String response = TShock.Groups.addGroup(groupname, permissions);
if( response.Length > 0 ) 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 else
{ {

View file

@ -88,6 +88,7 @@ namespace TShockAPI.DB
com.CommandText = "INSERT INTO ItemBans (ItemName) VALUES (@itemname);"; com.CommandText = "INSERT INTO ItemBans (ItemName) VALUES (@itemname);";
com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name); com.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery(); com.ExecuteNonQuery();
if( !ItemIsBanned( itemname ) )
ItemBans.Add(itemname); ItemBans.Add(itemname);
} }
} }
@ -99,18 +100,25 @@ namespace TShockAPI.DB
public void RemoveBan(string itemname) public void RemoveBan(string itemname)
{ {
if (ItemIsBanned(itemname))
return;
else
{
ItemBans.Remove(itemname);
}
try try
{ {
using (var com = database.CreateCommand()) 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.AddParameter("@itemname", Tools.GetItemByName(itemname)[0].name);
com.ExecuteNonQuery(); com.ExecuteNonQuery();
ItemBans.Remove(itemname);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
ItemBans.Remove(itemname);
Log.Error(ex.ToString()); Log.Error(ex.ToString());
} }
} }

View file

@ -21,7 +21,7 @@ namespace UnitTests
/// Summary description for UnitTest1 /// Summary description for UnitTest1
/// </summary> /// </summary>
[TestClass] [TestClass]
public class UnitTest1 public class ItemManagerTest
{ {
public static IDbConnection DB; public static IDbConnection DB;
[TestInitialize] [TestInitialize]
@ -30,8 +30,8 @@ namespace UnitTests
TShock.Config = new ConfigFile(); TShock.Config = new ConfigFile();
TShock.Config.StorageType = "sqlite"; TShock.Config.StorageType = "sqlite";
UnitTest1.DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite")); DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", "tshock.test.sqlite"));
UnitTest1.DB.Open(); DB.Open();
/*try /*try
{ {
var hostport = Config.MySqlHost.Split(':'); var hostport = Config.MySqlHost.Split(':');
@ -53,27 +53,51 @@ namespace UnitTests
} }
[TestMethod] [TestMethod]
public void SQLiteItemTest() public void SQLiteItemTest_AddBan()
{ {
// //
// TODO: Add test logic here // TODO: Add test logic here
// //
ItemManager manager = new ItemManager(DB); ItemManager manager = new ItemManager(DB);
Assert.IsNotNull(manager); 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"); manager.AddNewBan("Dirt Block");
Assert.AreEqual(true, manager.ItemIsBanned("Dirt Block")); Assert.AreEqual(true, manager.ItemIsBanned("Dirt Block"), "New item is added");
Assert.AreEqual(false, manager.ItemIsBanned("Green Brick")); Assert.AreEqual(false, manager.ItemIsBanned("Green Brick"), "Item isn't banned");
manager.AddNewBan("Green Brick"); 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")); Assert.AreEqual(true, manager.ItemIsBanned("Green Brick"));
//manager.UpdateItemBans(); manager.RemoveBan("Green Brick");
//Assert.AreEqual(false, manager.ItemIsBanned("Dirt Block")); Assert.AreEqual(false, manager.ItemIsBanned("Green Brick"));
DB.Close();
} }
[TestCleanup] [TestCleanup]
public void Cleanup() public void Cleanup()
{ {
DB.Close();
} }
} }
} }

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<OrderedTest name="ItemManagerTest" storage="c:\users\virus\git\tshock\unittests\itemmanagertest.orderedtest" id="b9c6b3d7-52d8-4b49-bfbf-933efa073ca8" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<TestLinks>
<TestLink id="851eff7f-13e8-7778-e7ca-71ff3ce24234" name="SQLiteItemTest_AddBan" 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="26cf8396-064b-1c1d-c511-37969c68dfbd" name="SQLiteItemTest_RemoveBan" 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>

View file

@ -64,7 +64,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UnitTest1.cs" /> <Compile Include="ItemManagerTest.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\TShockAPI\TShockAPI.csproj"> <ProjectReference Include="..\TShockAPI\TShockAPI.csproj">
@ -72,6 +72,11 @@
<Name>TShockAPI</Name> <Name>TShockAPI</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="ItemManagerTest.orderedtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.