public void PlaceBet_ShouldFillAllRequiredFieldsColor() { // Arrange User user = new User("Test", repo.CreateUserDAL(), repo.CreateBetDAL()) { Id = 50 }; IBet bet = new ColorBet(InterfaceLayerBD.Bet.IPocketColor.Black) { Stake = 200 }; using (TransactionScope scope = new TransactionScope()) { // Act user.MakeBet(bet); var savedBet = repo.CreateBetDAL().GetCurrentBet(user.Id); // Assert Assert.Equal(bet.Stake, savedBet.Stake); Assert.Equal(bet.Odd, savedBet.Odd); // Cast this to int because that's the value you would get from the database. Assert.Equal((int)bet.GetBetSpecificInfo()["Color"], savedBet.GetBetSpecificInfo()["Color"]); } }