Exemplo n.º 1
0
        public void GetReviewFaker_AmountBeyondMaxReview_ShouldBeFallBackToMaxReviewAmount()
        {
            var    reviews          = ReviewFaker.GetReviewList(12);
            Random rnd              = new Random();
            int    numberOfInstance = rnd.Next(1, 10);

            var randomReviewList = reviews.OrderBy(r => Guid.NewGuid()).Take(numberOfInstance);

            _output.WriteLine(JsonConvert.SerializeObject(randomReviewList, Formatting.Indented));
            _output.WriteLine(randomReviewList.Count().ToString());

            Assert.NotEqual(reviews.First().Id.ToString(), randomReviewList.FirstOrDefault().Id.ToString());
        }
Exemplo n.º 2
0
        public static IList <Product> GetProducts()
        {
            int totalSubCategories = Enum.GetNames(typeof(SubCategoryConstants)).Length;
            var subCategories      = SubCategoryFaker.GetSubCategoryList(totalSubCategories);
            var subImageFaker      = SubImageFaker.GetSubImageFaker();
            var subCategoryId      = 0;

            var productFaker = new Faker <Product>()
                               .RuleFor(p => p.Id, f => Guid.NewGuid().ToString())
                               .RuleFor(p => p.Name, f => f.Commerce.ProductName())
                               .RuleFor(p => p.Description, f => f.Random.Words(f.Random.Number(1, 400)))
                               .RuleFor(p => p.MainImageURL, f => f.Image.PicsumUrl())
                               .RuleFor(p => p.SubImages, f => subImageFaker.Generate(f.Random.Number(0, 4)))
                               .RuleFor(p => p.Price, f => Decimal.Parse(f.Commerce.Price(100m, 100000m), NumberStyles.Currency))
                               .RuleFor(p => p.SubCategory, f =>
            {
                var subCategory = subCategories.Where(c => (int)c.Id == subCategoryId).FirstOrDefault();
                subCategoryId   = (subCategoryId >= totalSubCategories - 1) ? 0 : subCategoryId + 1;
                return(subCategory);
            })
                               .RuleFor(p => p.SubCategoryId, (f, p) => p.SubCategory.Id)
                               .RuleFor(p => p.Reviews, (f, p) => ReviewFaker.GetReviewList(3))
                               .RuleFor(p => p.CreationDate, f => f.Date.Past())
                               .FinishWith((f, p) =>
            {
                // assign product id to each review and subImage entities
                foreach (var review in p.Reviews)
                {
                    review.ProductId = p.Id;
                }

                foreach (var subImage in p.SubImages)
                {
                    subImage.ProductId = p.Id;
                }
            });

            Product SeededProduct(int seed)
            {
                return(productFaker.UseSeed(seed).Generate());
            }

            var products = Enumerable.Range(1, 1)
                           .Select(SeededProduct)
                           .ToList();

            return(products);
        }