コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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 }));
            }
        }