public void Add_ShouldAddADrawToTheDatabase() { //Arrange var someGame = new LotteryGameBuilder().Build(); using (var context = CreateDbContext()) { context.Add(someGame); context.SaveChanges(); } var newDraw = new DrawBuilder().WithLotteryGameId(someGame.Id).WithRandomDrawNumbers(1, 1).Build(); using (var context = CreateDbContext()) { var repo = new DrawRepository(context); //Act repo.Add(newDraw); } using (var context = CreateDbContext()) { //Assert var savedDraw = context.Set <Draw>().FirstOrDefault(draw => draw.Id == newDraw.Id); Assert.That(savedDraw, Is.Not.Null, () => "Cannot find the added draw in the database."); } }
public LotteryGameBuilder WithRandomDraws(int minimumAmountOfDraws, int maximumAmountOfDraws) { _game.Draws = new List <Draw>(); var amountOfDraws = _random.Next(minimumAmountOfDraws, maximumAmountOfDraws + 1); for (int i = 0; i < amountOfDraws; i++) { var draw = new DrawBuilder().WithRandomDrawNumbers(1, 10).Build(); _game.Draws.Add(draw); } return(this); }
public void Add_ShouldThrowArgumentExceptionWhenTheDrawContainsNoDrawNumbers() { var newDraw = new DrawBuilder().Build(); using (var context = CreateDbContext()) { var repo = new DrawRepository(context); newDraw.DrawNumbers = null; Assert.That(() => repo.Add(newDraw), Throws.ArgumentException, () => "Should throw an 'ArgumentException' when 'DrawNumbers' is null."); newDraw.DrawNumbers = new List <DrawNumber>(); Assert.That(() => repo.Add(newDraw), Throws.ArgumentException, () => "Should throw an 'ArgumentException' when 'DrawNumbers' is empty."); } }