/// <summary> /// Deletes the bot ability. /// </summary> /// <param name="bot">The bot.</param> /// <param name="botAbility">The bot ability.</param> /// <returns></returns> public bool DeleteBotAbility(IBot bot, IBotAbility botAbility) { var botAssemblyPath = GetBotAbilitySourceAssemplyPath(bot, botAbility); if (File.Exists(botAssemblyPath)) { File.Delete(botAssemblyPath); InitializeInstance(); return(true); } else { return(false); } }
public void GetBotAbility_WithAbilities_Ability() { var target = new WorldContext(); var bot1 = MockRepository.GenerateMock <IBot> (); var ability1 = MockRepository.GenerateMock <IOneBotAbility>(); var ability2 = MockRepository.GenerateMock <ITwoBotAbility>(); target.AddBot(bot1, ability1, ability2); IBotAbility actual = target.GetBotAbility <IOneBotAbility> (bot1); Assert.AreEqual(ability1, actual); actual = target.GetBotAbility <ITwoBotAbility> (bot1); Assert.AreEqual(ability2, actual); }
private static string GetBotAbilitySourceAssemplyPath(IBot bot, IBotAbility botAbility) { return(Path.Combine(GetBotAbilitiesSourceDir(bot), botAbility.GetType().Assembly.GetName().Name) + ".dll"); }
public Type GetBotAbilityInterfaceType(IBotAbility botAbility) { var botAbilityType = botAbility.GetType(); return(botAbilityType.GetInterfaces().Where(t => t.GetInterfaces().Count(i => i.Equals(typeof(IBotAbility))) > 0).First()); }