コード例 #1
0
        public void GetServiceByShipper_ResultNotExistsInCahce_FetchesTheResultFromDatabase()
        {
            // arrange
            Shipper ups = new Shipper()
            {
                ID = 10, Name = "UPS"
            };
            Mock <IShipperRepository> mockShipperRepo = new Mock <IShipperRepository>();

            mockShipperRepo.Setup(r => r.GetShipper(It.Is <string>(s => s.Equals("UPS")))).Returns(ups);
            List <DeliveryService> expected = new List <DeliveryService>();

            expected.Add(new DeliveryService()
            {
                ID = 1, ServiceName = "Regular", ShipperID = 10
            });
            expected.Add(new DeliveryService()
            {
                ID = 2, ServiceName = "Express", ShipperID = 10
            });
            Mock <IDeliveryServiceRepository> mockServiceRepo = new Mock <IDeliveryServiceRepository>();

            mockServiceRepo.Setup(r => r.GetServicesByShipper(It.Is <int>(i => i == 10))).Returns(expected);
            Mock <ObjectCache> mockCache = new Mock <ObjectCache>();
            ShippingService    sut       = new ShippingService(mockShipperRepo.Object, null, mockServiceRepo.Object, mockCache.Object);

            // act
            var actual = sut.GetServicesByShipper("UPS");

            // assert
            Assert.IsTrue(Equality.AreEqual(expected, actual));
            mockShipperRepo.Verify(r => r.GetShipper(It.Is <string>(s => s.Equals("UPS"))), Times.Once());
            mockServiceRepo.Verify(r => r.GetServicesByShipper(It.Is <int>(i => i == 10)), Times.Once());
            mockCache.Verify(
                c => c.Set(
                    It.Is <string>(s => s.Equals("servicesByUPS")),
                    It.Is <IEnumerable <DeliveryService> >(l => l.Count() == 2),
                    It.IsAny <CacheItemPolicy>(),
                    null),
                Times.Once());
        }
コード例 #2
0
        public void GetServicesByShipper_ResultExistsInCache_ReturnsTheResult()
        {
            List <DeliveryService> expected = new List <DeliveryService>();

            expected.Add(new DeliveryService()
            {
                ID = 1, ServiceName = "Regular"
            });
            expected.Add(new DeliveryService()
            {
                ID = 2, ServiceName = "Express"
            });
            Mock <ObjectCache> mockCache = new Mock <ObjectCache>();

            mockCache.Setup(c => c["servicesByUPS"]).Returns(expected);
            ShippingService sut = new ShippingService(null, null, null, mockCache.Object);

            // act
            var actual = sut.GetServicesByShipper("UPS");

            // assert
            Assert.IsTrue(Equality.AreEqual(expected, actual));
            mockCache.Verify(c => c["servicesByUPS"], Times.Once());
        }