public async Task TestGenerateMenuCommandsAsyncAuth() { await Utils.SetDefaultValueDbContextAsync(); BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); TelegramCommandGenerator telegramCommand = new TelegramCommandGenerator(telegramHandler); var result = await telegramCommand.GenerateMenuCommandsAsync(123456789); Assert.AreEqual(4, result.Count()); Assert.AreEqual(1, result.Where(items => items.Item1 == TelegramCommand.AddAdminPermission).Count()); }
public async Task TestGetAppsNameAsync() { await Utils.SetDefaultValueDbContextAsync(); BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); var appsInfo = (await telegramHandler.GetAppsNameAsync(123456789)).ToList(); Assert.AreEqual(appsInfo.Count(), 2); Assert.AreEqual(appsInfo[0].Item2, "App1"); Assert.AreEqual(appsInfo[1].Item2, "App2"); }
public async Task TestAddAdminPermissionFailed() { BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); bool result = await telegramHandler.AddAdminPermissionAsync(123456789, "Bot1", "@@@@@@@"); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); Assert.IsFalse(result); Assert.AreEqual(0, await db.TelegramUsers.AsQueryable().CountAsync()); }
public async Task TestRemoveAdminPermissionNoUser() { BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); await telegramHandler.RemoveAdminPermissionAsync(123456789, "Bot1"); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); TelegramUser user = await db.TelegramUsers.FindAsync((long)123456789); Assert.AreEqual(1, await db.TelegramUsers.AsQueryable().CountAsync()); Assert.AreEqual("Bot1", user.UserName); Assert.IsFalse(user.IsAdmin); }
public async Task TestAddAdminPermissionSuccessNoUser() { BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); bool result = await telegramHandler.AddAdminPermissionAsync(123456789, "Bot1", "P@ssw0rd"); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); TelegramUser user = await db.TelegramUsers.FindAsync((long)123456789); Assert.IsTrue(result); Assert.AreEqual(1, await db.TelegramUsers.AsQueryable().CountAsync()); Assert.AreEqual("Bot1", user.UserName); Assert.IsTrue(user.IsAdmin); }
public async Task TestCheckIsAdminTrue() { await Utils.SetDefaultValueDbContextAsync(); BotDbContext db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); await telegramHandler.AddAdminPermissionAsync(123456789, "Bot1", "P@ssw0rd"); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); telegramHandler = new TelegramHandler(logger, configuration, db); bool result = await telegramHandler.CheckIsAdminAsync(123456789); Assert.IsTrue(result); }
public async Task TestGenerateBindCommandsAsyncApp() { Guid clientId = Guid.NewGuid(); await Utils.SetOneValueDbContextAsync(clientId); BotDbContext db = Utils.CreateMemoryDbContext(); var auth = await db.AppAuths.FirstAsync(); db.AppAuths.Remove(auth); await db.SaveChangesAsync(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); TelegramCommandGenerator telegramCommand = new TelegramCommandGenerator(telegramHandler); var result = await telegramCommand.GenerateBindCommandsAsync(123456789); Assert.AreEqual(4, result.Count()); }
public async Task TestGetAuthInfoAsync() { await Utils.SetDefaultValueDbContextAsync(); BotDbContext db = Utils.CreateMemoryDbContext(); Guid authId1 = await db.AppAuths.AsQueryable().Select(app => app.Id).FirstAsync(); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); var authInfo = (await telegramHandler.GetAuthInfoAsync(authId1.ToString())); Assert.AreEqual(authInfo.Name, "Auth1"); Assert.AreEqual(authInfo.RefreshToken, string.Empty); Assert.AreEqual(authInfo.Scope, DefaultGraphApi.Scope); Assert.AreEqual(authInfo.Id, authId1); }
public async Task TestGetAppInfoAsync() { await Utils.SetDefaultValueDbContextAsync(); BotDbContext db = Utils.CreateMemoryDbContext(); Guid clientId1 = await db.AzureApps.AsQueryable().Select(app => app.Id).FirstAsync(); await db.DisposeAsync(); db = Utils.CreateMemoryDbContext(); TelegramHandler telegramHandler = new TelegramHandler(logger, configuration, db); var appInfo = (await telegramHandler.GetAppInfoAsync(clientId1.ToString())); Assert.AreEqual(appInfo.Name, "App1"); Assert.AreEqual(appInfo.Email, "*****@*****.**"); Assert.AreEqual(appInfo.Secrets, string.Empty); Assert.AreEqual(appInfo.TelegramUserId, 123456789); Assert.AreEqual(appInfo.Id, clientId1); }
static void Main() { var settings = LoadSettings(); if (settings.DataBaseType.Equals("PostgreHandler")) { container.Bind <IDataBase>().To <PostgreHandler>().InSingletonScope(); } else { container.Bind <IDataBase>().To <SQLiteHandler>().InSingletonScope(); } container.Bind <IHttpClient>().To <HttpApiClient>().InSingletonScope(); container.Bind <IInputParser>().To <InputParser>().InSingletonScope(); container.Bind <IOutputRender>().To <OutputRender>().InSingletonScope(); container.Bind <ILogger>().To <ConsoleLogger>().InSingletonScope(); container.Bind <UserRegister>().To <UserRegister>().InSingletonScope(); container.Bind <ChatStatusManager>().To <ChatStatusManager>().InSingletonScope(); container.Bind <InputDataParser>().To <InputDataParser>().InSingletonScope(); container.Bind <StockManager>().To <StockManager>().InSingletonScope(); container.Bind <SchedulerManager>().To <SchedulerManager>().InSingletonScope(); container.Bind <BotLogic>().To <BotLogic>().InSingletonScope(); container.Bind <Scheduler>().To <Scheduler>().InSingletonScope(); botClient = new TelegramBotClient(settings.TelegramBotToken); telegramHandler = new TelegramHandler( botClient, container.Get <IInputParser>(), container.Get <IOutputRender>()); AddAllEventHandlers(); telegramHandler.Initialize(); container.Get <Scheduler>().Run(10); Console.WriteLine("Press key to shutdown bot"); Console.ReadKey(); telegramHandler.StopReciving(); }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); Configuration.Instance.ReadFromFile("./config.json"); var taskPool = new List <Task <IEnumerable <AccountBalance> > >(); foreach (var portfolio in Configuration.Instance.Portfolios) { taskPool.Add(portfolio.ReadAccountBalances()); } var res = await Task.WhenAll(taskPool); var summer = new AccountBalancesSummer(); foreach (var ab in res) { summer.Add(ab); } StringBuilder sb = new StringBuilder(); sb.AppendLine("Current assets"); foreach (var a in summer.AccountBalances.Where(c => c.Balance > 0).OrderBy(c => c.Currency)) { sb.AppendLine(a.ToString()); } var telegram = new TelegramHandler(Configuration.Instance.TelegramConfiguration); await telegram.SendMessage(sb.ToString()); Console.WriteLine(sb.ToString()); Console.WriteLine("Done"); }