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); }
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]); }