public async Task ThrowArgumentException_When_TitleAlreadyExists() { //Arrange var options = Utils.GetOptions(nameof(ThrowArgumentException_When_TitleAlreadyExists)); var summary = "Report Summary"; var description = "Report Description"; var author = TestModelsSeeder.SeedUser(); var industry = TestModelsSeeder.SeedIndustry(); var imgURL = "imageurl"; var tag = TestModelsSeeder.SeedTag(); var report = TestModelsSeeder.SeedReport(); using (var arrangeContext = new InsightHubContext(options)) { await arrangeContext.Users.AddAsync(author); await arrangeContext.Industries.AddAsync(industry); await arrangeContext.Tags.AddAsync(tag); await arrangeContext.Reports.AddAsync(report); await arrangeContext.SaveChangesAsync(); } //Act & Assert using var assertContext = new InsightHubContext(options); var sutTags = new TagServices(assertContext); var sutReports = new ReportServices(assertContext, sutTags); await Assert.ThrowsExceptionAsync <ArgumentException>(() => sutReports.CreateReport(report.Title, summary, description, author.Email, imgURL, industry.Name, tag.Name)); }
public async Task CreateReport_WhenParamsAreValid() { //Arrange var options = Utils.GetOptions(nameof(CreateReport_WhenParamsAreValid)); var title = "Report Title"; var summary = "Report Summary"; var description = "Report Description"; var author = TestModelsSeeder.SeedUser(); var industry = TestModelsSeeder.SeedIndustry(); var imgURL = "imageurl"; var tag = TestModelsSeeder.SeedTag(); using (var arrangeContext = new InsightHubContext(options)) { await arrangeContext.Users.AddAsync(author); await arrangeContext.Industries.AddAsync(industry); await arrangeContext.Tags.AddAsync(tag); await arrangeContext.SaveChangesAsync(); } //Act & Assert using var assertContext = new InsightHubContext(options); var sutTags = new TagServices(assertContext); var sutReports = new ReportServices(assertContext, sutTags); var act = await sutReports.CreateReport(title, summary, description, author.Email, imgURL, industry.Name, tag.Name); var result = assertContext.Reports.FirstOrDefault(t => t.Title == title); Assert.AreEqual(title, result.Title); Assert.AreEqual(description, result.Description); Assert.AreEqual(tag.Name, result.ReportTags.First().Tag.Name); }
public async Task <ActionResult> Create(ReportCreateViewModel report) { if (!ModelState.IsValid) { return(Json(ModelState.ToDictionary())); } await _reportServices.CreateReport(report, User.Identity.GetUserId()); return(Json("STATUS_OK")); }