コード例 #1
0
        public void Restock_ShouldRestock()
        {
            // Arrange
            var daoMock = new Mock <IJSonDao>();

            daoMock.Setup(d => d.Denominations).Returns(_standardDenoms);

            var denomService = new DenominationService(daoMock.Object);

            var newStock = new List <DenominationModel>
            {
                new DenominationModel {
                    Denomination = 100, Count = 10
                },
                new DenominationModel {
                    Denomination = 50, Count = 10
                },
                new DenominationModel {
                    Denomination = 20, Count = 10
                },
                new DenominationModel {
                    Denomination = 10, Count = 10
                },
                new DenominationModel {
                    Denomination = 5, Count = 10
                },
                new DenominationModel {
                    Denomination = 1, Count = 10
                },
            };

            // Act
            var result = denomService.Restock(newStock);

            // Assert
            // Returned value.
            Assert.Equal(6, result.Count());
            foreach (var denom in result)
            {
                Assert.Equal(20, denom.Count);
            }

            // Value from datastore.
            var storedDenoms = denomService.GetDenominations().ToList();

            Assert.Equal(6, storedDenoms.Count());
            foreach (var denom in storedDenoms)
            {
                Assert.Equal(20, denom.Count);
            }
        }
コード例 #2
0
        public void Restock_ShouldNotRestockNegativeCounts()
        {
            // Arrange
            var daoMock = new Mock <IJSonDao>();

            daoMock.Setup(d => d.Denominations).Returns(_standardDenoms);

            // Should NOT attempt to update datastore if can't restock.
            daoMock.Verify(d => d.Update(It.IsAny <List <DenominationModel> >()), Times.Never);

            var denomService = new DenominationService(daoMock.Object);

            var newStock = new List <DenominationModel>
            {
                new DenominationModel {
                    Denomination = 100, Count = -20
                }
            };

            // Act
            // Assert
            Assert.Throws <InvalidAtmOperationException>(() => denomService.Restock(newStock));
        }