コード例 #1
0
        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());
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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());
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: mcdnmd/StockTelegramBot
        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();
        }
コード例 #11
0
        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");
        }