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); }
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}}"); }
public void TaskFailTest() { var task = new AddPlatform(EmptyDbContext); var result = task.DoTask(new Platform()); Assert.IsFalse(result.Success); Assert.IsNotNull(result.Exception); }