public void TestSecurityDispose() { var security = new SecurityController(); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityAddGroup, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "GroupName" }) }); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityGroupSetPermission, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "GroupName", CommandType.VariablesSet, 77 }) }); security.Tunnel(CommandBuilder.SecurityGroupAppendPermissionTrait("GroupName", CommandType.VariablesSet.ToString(), PermissionTraitsType.Boolean).SetOrigin(CommandOrigin.Local)); security.Tunnel(CommandBuilder.SecurityGroupSetPermissionDescription("GroupName", CommandType.VariablesSet.ToString(), "Description!").SetOrigin(CommandOrigin.Local)); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityGroupAddAccount, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "GroupName", "Phogue" }) }); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityAccountSetPassword, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "Phogue", "password" }) }); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityAccountSetPreferredLanguageCode, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "Phogue", "de-DE" }) }); security.Tunnel(new Command() { Origin = CommandOrigin.Local, CommandType = CommandType.SecurityAccountAddPlayer, Parameters = TestHelpers.ObjectListToContentList(new List<Object>() { "Phogue", CommonProtocolType.DiceBattlefield3, "ABCDEF" }) }); GroupModel group = security.Groups.Last(); AccountModel account = group.Accounts.First(); PermissionModel permission = group.Permissions.First(p => p.Name == CommandType.VariablesSet.ToString()); AccountPlayerModel accountPlayer = account.Players.First(); security.Dispose(); // Test that all the lists and data within each item has been nulled. Assert.IsNull(security.Groups); Assert.IsNull(group.Name); Assert.IsNull(group.Permissions); Assert.IsNull(group.Accounts); Assert.IsNull(account.Username); Assert.IsNull(account.PreferredLanguageCode); Assert.IsNull(account.PasswordHash); Assert.IsNull(account.Players); Assert.IsNull(account.Group); Assert.AreEqual(CommandType.None, permission.CommandType); Assert.IsNull(permission.Name); Assert.IsNull(permission.Authority); Assert.IsNull(permission.Traits); Assert.IsNull(permission.Description); Assert.AreEqual(CommonProtocolType.None, accountPlayer.ProtocolType); Assert.IsNull(accountPlayer.Uid); Assert.IsNull(accountPlayer.Account); }