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)
{
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
{

View file

@ -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());
}
}

View file

@ -21,7 +21,7 @@ namespace UnitTests
/// Summary description for UnitTest1
/// </summary>
[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();
}
}
}

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>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UnitTest1.cs" />
<Compile Include="ItemManagerTest.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TShockAPI\TShockAPI.csproj">
@ -72,6 +72,11 @@
<Name>TShockAPI</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="ItemManagerTest.orderedtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- 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.