public void UpgradeMembershipProcessor_Process_ShouldUpgradeMembership_WhenOrderIsForMembership() { var membershipManagerMock = new Mock <MembershipManager>(); membershipManagerMock.Setup(a => a.Activate(It.IsAny <MembershipDto>())); var emailMock = new Mock <EmailHandler>(); emailMock.Setup(a => a.SendEmail(It.IsAny <EmailDto>())); var processor = new UpgradeMembershipProcessor(membershipManagerMock.Object, emailMock.Object); var order = new OrderDto { ProductType = ProductType.UpgradeMembership, Amount = 100, Agent = new AgentDto { FirstName = "Rahul", LastName = "Dravid", Email = "*****@*****.**" } }; var result = processor.Process(order); membershipManagerMock.Verify(a => a.Upgrade(It.IsAny <MembershipDto>()), Times.Once); }
public void UpgradeMembershipProcessor_Process_ShouldNotProcessTheOrder_WhenOrderIsForOtherThanMembership() { var membershipManagerMock = new Mock <MembershipManager>(); membershipManagerMock.Setup(a => a.Activate(It.IsAny <MembershipDto>())); var emailMock = new Mock <EmailHandler>(); emailMock.Setup(a => a.SendEmail(It.IsAny <EmailDto>())); var processor = new UpgradeMembershipProcessor(membershipManagerMock.Object, emailMock.Object); var order = new OrderDto { ProductType = ProductType.Physical, Amount = 100, Agent = new AgentDto { FirstName = "Rahul", LastName = "Dravid", Email = "*****@*****.**" } }; var result = processor.Process(order); Assert.AreEqual(OrderStatus.Pending, result); }