public void BookRoom_SavesToContext() { var bookingSchedule = new BookingSchedule() { Id = 1, StartTime = new DateTime(2016, 5, 5), RoomId = 1, DurationInMinuts = 30, PersonId = 1, Room = new Room(), Person = new Person() }; var mockBookingScheduleSet = new Mock <DbSet <BookingSchedule> >(); var mockContext = new Mock <BookingContext>(); mockContext.Setup(x => x.BookingSchedules).Returns(mockBookingScheduleSet.Object); var repository = new RoomRepository(mockContext.Object); repository.BookRoom(bookingSchedule); // Though it's not recommended to assert against more than 1 mock object // here we have to do so as we need to make sure both Add() and SaveChanges() methods // are called mockBookingScheduleSet.Verify(b => b.Add(It.IsAny <BookingSchedule>()), Times.Once()); mockContext.Verify(ctx => ctx.SaveChanges(), Times.Once()); }