public async Task Success() { // Arrange var options = DatabaseSetup.CreateContextOptions(); string userId = new Guid().ToString(); // Act var games = new GameService(options); var first = await games.AddCampaign("A campaign", userId); Assert.NotNull(first); var second = await games.AddCampaign("Another campaign", userId); Assert.NotNull(second); // Assert using (var db = new DatabaseContext(options)) { Assert.Equal(2, db.Campaigns.Count()); var firstCampaign = await db.Campaigns.FirstAsync(); Assert.Equal("A campaign", firstCampaign.Name); Assert.Equal(userId, firstCampaign.GmUserId); var secondCampaign = await db.Campaigns.LastAsync(); Assert.Equal("Another campaign", secondCampaign.Name); Assert.Equal(userId, secondCampaign.GmUserId); } }
public async Task <IActionResult> AddCampaign(string name) { if (string.IsNullOrWhiteSpace(name)) { return(BadRequest()); } try { var campaign = await games.AddCampaign(name, users.GetUserId()); return(CreatedAtAction(nameof(GetCampaign), new { campaignId = campaign.CampaignId }, campaign)); } catch (ArgumentException e) { return(BadRequest(new { Error = e.Message })); } catch (DataNotCreatedException e) { return(BadRequest(new { Error = e.Message })); } }