コード例 #1
0
        public void MapDTOToBrewery_ShouldReturnBrewery()
        {
            //Arrange
            var cut = new BreweryDTO()
            {
                Name = "Bulgaria"
            };
            //Act
            var sut = cut.MapDTOToBrewery();

            //Assert
            Assert.IsInstanceOfType(sut, typeof(Brewery));
        }
コード例 #2
0
        public void MapDTOToBrewery_ShouldReturnCorrectID()
        {
            //Arrange
            var cut = new BreweryDTO
            {
                ID      = 1,
                Country = "Bulgaria"
            };
            //Act
            var sut = cut.MapDTOToBrewery();

            //Assert
            Assert.AreEqual(sut.ID, 1);
        }
コード例 #3
0
        /// <summary>
        /// Creates a brewery and writes it to the database.
        /// </summary>
        /// <param name="model">Input BreweryDTO object</param>
        /// <returns>Returns the reevaluated input object</returns>
        public async Task <BreweryDTO> CreateAsync(BreweryDTO model)
        {
            var brewery = model.MapDTOToBrewery();

            if (brewery.Name == null)
            {
                return(null);
            }
            brewery.Country = await this._context.Countries.FirstOrDefaultAsync(c => c.Name == model.Country);

            #region Check if exists
            var theBrewery = await this._context.Breweries
                             .FirstOrDefaultAsync(b => b.Name == model.Name);

            if (theBrewery == null)
            {
                brewery.CreatedOn = DateTime.UtcNow;
                await _context.Breweries.AddAsync(brewery);

                await this._context.SaveChangesAsync();
            }
            else
            {
                theBrewery.IsDeleted  = false;
                theBrewery.DeletedOn  = null;
                theBrewery.ModifiedOn = DateTime.UtcNow;
                _context.Breweries.Update(theBrewery);
                var beersOfBrewery = await _context.Beers
                                     .Include(b => b.Country)
                                     .Include(b => b.Brewery)
                                     .Include(b => b.Style)
                                     .Include(b => b.Reviews)
                                     .Where(b => b.BreweryID == theBrewery.ID)
                                     .Where(b => b.Style.IsDeleted == false)
                                     .ToListAsync();

                foreach (var item in beersOfBrewery)
                {
                    await new BeerService(_context).CreateAsync(item.MapBeerToDTO());
                }
                await this._context.SaveChangesAsync();
            }
            #endregion
            var returnModel = await this._context.Breweries.Include(b => b.Country)
                              .FirstOrDefaultAsync(b => b.Name == model.Name);

            model.ID = returnModel.ID;
            return(model);
        }
コード例 #4
0
        public void MapDTOToBrewery_ShouldReturnCorrectNameAndCountry()
        {
            //Arrange
            var cut = new BreweryDTO
            {
                Name    = "Brewery",
                Country = "Bulgaria"
            };
            //Act
            var sut = cut.MapDTOToBrewery();

            //Assert
            Assert.AreEqual(sut.Name, "Brewery");
            //Assert.AreEqual(sut.Country.Name, "Bulgaria");
        }