public void RefactoredShouldRunOrchestrationIsCorrect( Product testProduct, decimal repoDiscount, decimal expectedDiscount, [Frozen] Mock <IDiscountRepository> repository, [Frozen] Mock <IDiscountStrategy> discountStrategy, RefactoredProductClass sut) { repository.Setup(x => x.GetDiscountForType(testProduct.DiscountType, testProduct.ProductType)) .Returns(repoDiscount); discountStrategy.Setup(x => x.DiscountProduct(testProduct, repoDiscount)) .Returns(expectedDiscount); var actual = sut.GetDiscountPrice(testProduct); Assert.Equal(expectedDiscount, actual); }