Esempio n. 1
0
        public void TaskSuccessTest()
        {
            var task         = new AddPlatform(DbContext);
            var testPlatform = TestsModel.Platform;
            var result       = task.DoTask(testPlatform);

            Assert.IsTrue(result.Success);
            Assert.IsNull(result.Exception);
            Assert.IsNotNull(result.Data);

            var platformId = result.Data;

            Assert.IsNotNull(platformId);
            Assert.IsTrue(platformId > 0);

            var getPlatformTask = new GetPlatform(DbContext);
            var platform        = getPlatformTask.DoTask(platformId.Value)?.Data;

            Assert.IsNotNull(platform);
            Assert.AreEqual(testPlatform.Name, platform.Name);
            Assert.AreEqual(testPlatform.Website, platform.Website);
            Assert.AreEqual(testPlatform.Services.Count, platform.Services.Count);
            foreach (var service in testPlatform.Services)
            {
                Assert.IsTrue(platform.Services.Exists(s => s.Id == service.Id));
            }

            var removePlatformTask = new RemovePlatform(DbContext);
            var removeResult       = removePlatformTask.DoTask(platform);

            Assert.IsTrue(removeResult.Success);
            Assert.IsNull(removeResult.Exception);
        }
Esempio n. 2
0
        public static async Task AddPlatform(HttpContext httpContext, AddPlatform addPlatform)
        {
            if (!httpContext.Session.GetAccountId(out long accountId))
            {
                throw new HttpException(500, "Failed to get AccountId");
            }

            await using var context = new DatabaseContext();
            var account = await(from a in context.Accounts where a.Id.Equals(accountId) select a).FirstOrDefaultAsync();

            if (account == null)
            {
                throw new HttpException(500, "Account does not exist");
            }

            if (account.AccountType != AccountType.Admin)
            {
                throw new HttpException(403, "Access denied");
            }

            var platform = new Platform {
                Id      = Security.IdGen.GetId(),
                Name    = addPlatform.Name,
                Link    = addPlatform.Link,
                Icon    = addPlatform.Icon,
                Country = addPlatform.CountryData
            };

            await context.Platforms.AddAsync(platform);

            await context.SaveChangesAsync();

            await httpContext.Response.WriteAsync($"{{\"success\":true}}");
        }
Esempio n. 3
0
        public void TaskFailTest()
        {
            var task   = new AddPlatform(EmptyDbContext);
            var result = task.DoTask(new Platform());

            Assert.IsFalse(result.Success);
            Assert.IsNotNull(result.Exception);
        }