예제 #1
0
        public void ShouldReturnTheAvailableVets()
        {
            // Arrange
            var date = new DateTime(2020, 1, 25);

            var options = new DbContextOptionsBuilder <VetBookerContext>()
                          .UseInMemoryDatabase(databaseName: "ShouldReturnTheAvailableVets")
                          .Options;

            using (var context = new VetBookerContext(options))
            {
                context.Vet.Add(new Vet {
                    Id = 1
                });
                context.Vet.Add(new Vet {
                    Id = 2
                });
                context.Vet.Add(new Vet {
                    Id = 3
                });

                context.VetBooking.Add(new VetBooking {
                    VetId = 1, Date = date
                });
                context.VetBooking.Add(new VetBooking {
                    VetId = 2, Date = date.AddDays(1)
                });

                context.SaveChanges();
            }

            using (var context = new VetBookerContext(options))
            {
                var repository = new VetRepository(context);

                // Act
                var vets = repository.GetAvailableVets(date);

                // Assert
                Assert.Equal(2, vets.Count());
                Assert.Contains(vets, d => d.Id == 2);
                Assert.Contains(vets, d => d.Id == 3);
                Assert.DoesNotContain(vets, d => d.Id == 1);
            }
        }