public void Insert(PublicRecipe t) { if (_currentPublicRecipeState.Exists(r => r.Author == t.Author && r.Title == t.Title)) return; var random = new Random(); if (t.Id == default(int)) t.Id = random.Next(1, int.MaxValue); if (t.Items != null && t.Items.Count > 0) { foreach (var recipeItem in t.Items) { if (recipeItem.Id == default(int)) { recipeItem.Id = random.Next(1, int.MaxValue); } } } if (t.Reviews != null && t.Reviews.Count > 0) { foreach (var review in t.Reviews) { if (review.Id == default(int)) { review.Id = random.Next(1, int.MaxValue); } } } _currentPublicRecipeState.Add(t); }
public void OverallRatingShouldComputerCorrectly(int[] ratings, int expected) { var sut = new PublicRecipe(); foreach (var rating in ratings) { sut.AddReview(new UserReview {Rating = rating}); } sut.OverallRating.ShouldEqual(expected); }
public void Update(PublicRecipe t) { var existing = _currentPublicRecipeState.SingleOrDefault(a => a.Id == t.Id); if (existing != null) { _currentPublicRecipeState.Remove(existing); //_currentPublicRecipeState.Add(t); Insert(t); } }
public static PublicRecipe ConvertFromPrivateRecipe(PrivateRecipe privateRecipe) { if (privateRecipe == null) return null; var pubRecipe = new PublicRecipe(); pubRecipe.Title = privateRecipe.Title; pubRecipe.Author = privateRecipe.Author; pubRecipe.TimeCreated = privateRecipe.TimeCreated; pubRecipe.TimeLastModified = privateRecipe.TimeLastModified; pubRecipe.Items = privateRecipe.Items.ConvertAll(item => item.DeepCopy(false, pubRecipe)); return pubRecipe; }
public static UserReview GenerateRandomReview(PublicRecipe publicRecipe) { var fixture = new Fixture(); fixture.Behaviors.Remove(new ThrowingRecursionBehavior()); fixture.Behaviors.Add(new OmitOnRecursionBehavior()); var review = fixture.Build<UserReview>().With(r => r.PublicRecipe, publicRecipe).Create(); return review; }