public void GetAllShippers_ResultExistsInCache_ReturnsTheListOfShippers() { // arrange List <Shipper> expected = new List <Shipper>(); expected.Add(new Shipper() { ID = 1 }); expected.Add(new Shipper() { ID = 2 }); expected.Add(new Shipper() { ID = 3 }); expected.Add(new Shipper() { ID = 4 }); Mock <ObjectCache> mockCache = new Mock <ObjectCache>(); mockCache.Setup(c => c["allShippers"]).Returns(expected); ShippingService sut = new ShippingService(null, null, null, mockCache.Object); // act var actual = sut.GetAllShippers(); // assert Assert.IsTrue(Equality.AreEqual(expected, actual)); mockCache.Verify(c => c["allShippers"], Times.Once()); }
public void GetAllShippers_ResultNotExistsInCache_FetchesTheResultFromDatabase() { // arrange List <Shipper> expected = new List <Shipper>(); expected.Add(new Shipper() { ID = 1 }); expected.Add(new Shipper() { ID = 2 }); expected.Add(new Shipper() { ID = 3 }); expected.Add(new Shipper() { ID = 4 }); Mock <IShipperRepository> mockShipperRepo = new Mock <IShipperRepository>(); mockShipperRepo.Setup(r => r.GetAllShippers()).Returns(expected); Mock <ObjectCache> mockCache = new Mock <ObjectCache>(); ShippingService sut = new ShippingService(mockShipperRepo.Object, null, null, mockCache.Object); // act var actual = sut.GetAllShippers(); // assert Assert.IsTrue(Equality.AreEqual(expected, actual)); mockShipperRepo.Verify(r => r.GetAllShippers(), Times.Once()); mockCache.Verify( c => c.Set( It.Is <string>(s => s.Equals("allShippers")), It.Is <IEnumerable <Shipper> >(l => l.Count() == 4), It.IsAny <CacheItemPolicy>(), null), Times.Once()); }