public void Ctor_NullFilterProperty_ThrowsException()
        {
            // Arrange
            var wf = new ComparisonWorkflow(new ProductRepositoryMock());

            // Act
            wf.Match();

            // Assert
            Assert.Fail("Exception expected");
        }
        public void Match_ValidProducts_MatchedProductTarrifs()
        {
            // Arrange
            var wf = new ComparisonWorkflow(new ProductRepositoryMock());

            wf.ProductFilter = GetMockFilter();
            var expected = ProductTarrifMock.ProductTarrifs;

            // Act
            var results = wf.Match().ToList();

            // Assert
            for (int i = 0; i < results.Count - 1; i++)
            {
                Assert.AreEqual(expected[i].Name, results[i].Name);
                Assert.AreEqual(expected[i].AnnualCost, results[i].AnnualCost);
            }
        }