예제 #1
0
        public async Task <IActionResult> Post([FromBody] Team team)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (string.IsNullOrEmpty(team.Name))
                {
                    return(BadRequest());
                }

                Team stored = await teamsRepository.AddAsync(team);

                return(Ok(new { id = stored.Id }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new JsonResult(ex.Message)));
            }
        }
        public async Task AddAsync_ValidTeam_TeamIsAdded()
        {
            // Arrange
            using var connection = new SqliteConnection("DataSource=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder()
                          .UseSqlite(connection)
                          .Options;

            var teamToAdd = new Team
            {
                Name        = "Test team",
                FoundedYear = 2020
            };
            Guid teamAddedId;

            using (var context = new AppDbContext(options))
            {
                await context.Database.EnsureCreatedAsync();

                var repository = new TeamsRepository(context);

                // Act
                teamAddedId = await repository.AddAsync(teamToAdd);
            }

            using (var context = new AppDbContext(options))
            {
                // Assert
                var result = await context.Teams
                             .AnyAsync(team => team.Id == teamAddedId);

                Assert.True(result);
            }
        }