public void Should_Return_Valid_Total_Bet_Per_Customer() { var raceData = new List <Race> { new Race { ID = 1, Name = "Race 1", Start = "2018-01-24T02:00:00+00:00", Status = "completed", Horses = new List <Horse> { new Horse { ID = 1, Name = "michaelangelo", Odds = 1.5 }, new Horse { ID = 2, Name = "donatello", Odds = 2 } } }, new Race { ID = 1, Name = "Race 2", Start = "2018-01-24T02:00:00+00:00", Status = "pending", Horses = new List <Horse> { new Horse { ID = 3, Name = "leonardo", Odds = 1.5 }, new Horse { ID = 4, Name = "raphael", Odds = 2 } } } }; var betData = new List <Bet> { new Bet { CustomerId = 1, RaceId = 1, HorseId = 1, Stake = 100 }, new Bet { CustomerId = 1, RaceId = 1, HorseId = 1, Stake = 150 }, new Bet { CustomerId = 3, RaceId = 1, HorseId = 2, Stake = 200 } }; var customerData = new List <Customer> { new Customer { ID = 1, Name = "Steve Roger" }, new Customer { ID = 2, Name = "Tony Stark" }, new Customer { ID = 3, Name = "Clint Barton" } }; var raceRepository = new Mock <IRaceRepository>(); var customerRepository = new Mock <ICustomerRepository>(); raceRepository.Setup(r => r.GetRace()).Returns(raceData); raceRepository.Setup(r => r.GetBet()).Returns(betData); customerRepository.Setup(c => c.GetCustomer()).Returns(customerData); var handler = new GetCustomerDetailsQueryHandler(customerRepository.Object, raceRepository.Object); var result = handler.Handle(new GetCustomerDetailsQuery()); var customerBet = result.Customers.Where(c => c.ID == 1).FirstOrDefault().Bet; Assert.AreEqual(250, customerBet); }
public void Should_Return_Null_For_Empty_CustomerList() { var raceData = new List <Race> { new Race { ID = 1, Name = "Race 1", Start = "2018-01-24T02:00:00+00:00", Status = "completed", Horses = new List <Horse> { new Horse { ID = 1, Name = "michaelangelo", Odds = 1.5 }, new Horse { ID = 2, Name = "donatello", Odds = 2 } } }, new Race { ID = 1, Name = "Race 2", Start = "2018-01-24T02:00:00+00:00", Status = "pending", Horses = new List <Horse> { new Horse { ID = 3, Name = "leonardo", Odds = 1.5 }, new Horse { ID = 4, Name = "raphael", Odds = 2 } } } }; var betData = new List <Bet>(); var customerData = new List <Customer>(); var raceRepository = new Mock <IRaceRepository>(); var customerRepository = new Mock <ICustomerRepository>(); raceRepository.Setup(r => r.GetRace()).Returns(raceData); raceRepository.Setup(r => r.GetBet()).Returns(betData); customerRepository.Setup(c => c.GetCustomer()).Returns(customerData); var handler = new GetCustomerDetailsQueryHandler(customerRepository.Object, raceRepository.Object); var result = handler.Handle(new GetCustomerDetailsQuery()); Assert.IsNull(result); }