public void Success_StrategyDoesNothing()
        {
            // Setup
            const int qualityScore = 2;
            var       item         = new Item("Name", 1, qualityScore, QualityStrategy.Stable, ShelfLifeStrategy.Stable);
            var       algorithm    = new StableQualityAlgorithm();

            // Execution
            algorithm.Run(item, item);

            // Assert
            Assert.AreEqual(qualityScore, item.Quality);
        }
示例#2
0
        public void Success_CorrectPipelineReturned()
        {
            // Setup
            var qualityStrategyExpected = QualityStrategy.Stable;
            var item = new Item("NewItem", 1, 3, qualityStrategyExpected, ShelfLifeStrategy.Stable);
            var qualityFactoryMock = new Mock <IQualityAlgorithmFactory>(MockBehavior.Strict);

            // Create a mock that expects the sort of strategy that is represented in the item above
            var expectedReturn = new StableQualityAlgorithm();

            qualityFactoryMock.Setup(f => f.Create(qualityStrategyExpected))
            .Returns(expectedReturn);

            var factory = new QualityPipelineFactory(qualityFactoryMock.Object, null);

            // Execution
            var result = factory.CreatePipeline(item);

            // Assert
            // Since we haven't provided any QC steps, we should have a single element
            Assert.AreEqual(1, result.Count);
            Assert.AreEqual(expectedReturn, result[0]);
        }