예제 #1
0
        public void Is_Less_Than_18_And_Does_Not_Get_Email()
        {
            var mockCustomer = new Mock <ICustomer>();

            mockCustomer.SetupAllProperties();
            var mockValidator = new Mock <ICustomerValidator>();

            mockValidator.Setup(p => p.ValidateCustomer(mockCustomer.Object)).Returns(false);
            var mockSender = new Mock <INotificationSender>();

            WorkflowManager manager = new WorkflowManager(mockValidator.Object, mockSender.Object);

            manager.AddCustomer(mockCustomer.Object);

            mockValidator.Verify(p => p.ValidateCustomer(mockCustomer.Object), Times.Once);
            mockCustomer.VerifySet(p => p.Valid = false);
            mockCustomer.VerifyGet(p => p.Valid, Times.AtLeastOnce);
            mockSender.Verify(p => p.Send(mockCustomer.Object), Times.Never);
        }