コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }