public void RegisterPackage_AddsPackageToDatabase() { var mockSet = MockDbSetHelper.CreateMockSet(new Package[] { }.AsQueryable()); var mockContext = new Mock <InstantDeliveryContext>(); mockContext.Setup(m => m.Packages).Returns(mockSet.Object); mockContext.Setup(m => m.PackageEvents).ReturnsDbSet(new List <PackageEvent>()); var pricingMock = new Mock <IPricingStrategy>(); var package = new Package { Width = 100, Height = 200, Length = 150, Weight = 100 }; var controller = new PackagesController(mockContext.Object, pricingMock.Object); var packageDto = new PackageDto(); Mapper.DynamicMap(package, packageDto, typeof(Package), typeof(PackageDto)); controller.RegisterPackage(packageDto); mockSet.Verify(m => m.Add(It.IsAny <Package>()), Times.Once()); mockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public void RegisterPackage_ForValidatedPackage_ShouldAddNewPackage() { var package = new Package { Id = 1, Height = 100, Weight = 100, Width = 100, Length = 100, Status = PackageStatus.InWarehouse }; var packages = new List <Package>().AsQueryable(); var packagesMockSet = MockDbSetHelper.CreateMockSet(packages); var mockContext = new Mock <InstantDeliveryContext>(); mockContext.Setup(c => c.Packages).Returns(packagesMockSet.Object); mockContext.Setup(m => m.PackageEvents).ReturnsDbSet(new List <PackageEvent>()); var pricingStrategy = new Mock <IPricingStrategy>().Object; var controller = new PackagesController(mockContext.Object, pricingStrategy); var packageDto = new PackageDto(); Mapper.DynamicMap(package, packageDto, typeof(Package), typeof(PackageDto)); controller.RegisterPackage(packageDto); packagesMockSet.Verify(m => m.Add(It.IsAny <Package>()), Times.Once()); mockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public void RegisterPackage_SetsStatusToNew() { var mockContext = GetEmptyMockContext(); mockContext.Setup(m => m.PackageEvents).ReturnsDbSet(new List <PackageEvent>()); var mockPricingStrategy = new Mock <IPricingStrategy>(); var controller = new PackagesController(mockContext.Object, mockPricingStrategy.Object); var package = new Package(); var packageDto = new PackageDto(); Mapper.DynamicMap(package, packageDto, typeof(Package), typeof(PackageDto)); controller.RegisterPackage(packageDto); Assert.Equal(PackageStatus.InWarehouse, package.Status); }
public void RegisterPackage_ShouldAddEventToPackageHistory() { var mockSet = new Mock <IDbSet <PackageEvent> >(); var mockContext = new Mock <InstantDeliveryContext>(); mockContext.Setup(c => c.Packages).ReturnsDbSet(new List <Package>()); mockContext.Setup(c => c.PackageEvents).Returns(mockSet.Object); var packageDto = new PackageDto { Id = 1 }; var mockPricingStrategy = new Mock <IPricingStrategy>(); var controller = new PackagesController(mockContext.Object, mockPricingStrategy.Object); controller.RegisterPackage(packageDto); mockSet.Verify(m => m.Add(It.Is((PackageEvent p) => p.Package.Id == 1 && p.EventType == PackageEventType.RegisteredInWarehouse)), Times.Once()); }
public void RegisterPackage_AssignsCostToThePackage() { var mockSet = new Mock <IDbSet <Package> >(); var mockContext = new Mock <InstantDeliveryContext>(); mockContext.Setup(m => m.PackageEvents).ReturnsDbSet(new List <PackageEvent>()); mockContext.Setup(m => m.Packages).Returns(mockSet.Object); var packageDto = new PackageDto(); var mockPricingStrategy = new Mock <IPricingStrategy>(); mockPricingStrategy.Setup(m => m.GetCost(packageDto)).Returns(10M); var controller = new PackagesController(mockContext.Object, mockPricingStrategy.Object); controller.RegisterPackage(packageDto); mockSet.Verify(m => m.Add(It.Is((Package p) => p.Cost == 10M)), Times.Once()); }