public void MarkAsDelivered_ShouldAddEventToPackageHistory() { var package = new Package { Id = 1, Status = PackageStatus.InDelivery }; var employee = new Employee { Id = 1 }; employee.Packages.Add(package); var mockSet = new Mock <IDbSet <PackageEvent> >(); var mockContext = GetEmptyMockContext(); mockContext.Setup(c => c.Packages).ReturnsDbSet(package); mockContext.Setup(c => c.Employees).ReturnsDbSet(employee); mockContext.Setup(c => c.PackageEvents).Returns(mockSet.Object); var controller = new PackagesController(mockContext.Object, null); controller.MarkAsDelivered(package.Id); mockSet.Verify(m => m.Add(It.Is((PackageEvent pe) => pe.Package.Id == package.Id && pe.Employee.Id == employee.Id && pe.EventType == PackageEventType.Delivered))); }
public void MarkAsDelivered_ShouldRemovePackageFromEmployeeCollection() { var package = new Package { Id = 1, Status = PackageStatus.InDelivery }; var employee = new Employee { Id = 1 }; employee.Packages.Add(package); var mockContext = GetEmptyMockContext(); mockContext.Setup(c => c.Packages).ReturnsDbSet(package); mockContext.Setup(c => c.Employees).ReturnsDbSet(employee); mockContext.Setup(m => m.PackageEvents).ReturnsDbSet(new List <PackageEvent>()); var controller = new PackagesController(mockContext.Object, null); controller.MarkAsDelivered(package.Id); Assert.Equal(employee.Packages.Count, 0); }