public void TestAddingGettingStrategyToStrategyHolder() { StrategyHolder holder = new StrategyHolder(); BurnableDisposalStrategy burnStrategy = new BurnableDisposalStrategy(); RecyclableDisposalStrategy recStrategy = new RecyclableDisposalStrategy(); StorableDisposalStrategy storeStrategy = new StorableDisposalStrategy(); holder.AddStrategy( typeof(BurnableDisposableAttribute), burnStrategy); holder.AddStrategy( typeof(RecyclableDisposableAttribute), recStrategy); holder.AddStrategy( typeof(StorableDisposableAttribute), storeStrategy); Assert.AreEqual(burnStrategy, holder.GetDisposalStrategy(typeof(BurnableDisposableAttribute))); Assert.AreEqual(recStrategy, holder.GetDisposalStrategy(typeof(RecyclableDisposableAttribute))); Assert.AreEqual(storeStrategy, holder.GetDisposalStrategy(typeof(StorableDisposableAttribute))); }
public void RemoveStrategy_ShouldReturnTrue_WhenRecieveValidParameters() { // Arrange var strategy = new BurnableDisposalStrategy(); var type = new DisposableAttribute(); var holder = new StrategyHolder(); // Act and Assert Assert.IsTrue(holder.RemoveStrategy(type)); }
public void ProcessWaste_ShouldReturnValidCurrentStrategy() { // Arrange var garbage = new StorableWaste("glass", 10.5, 1.2); var strategyHolder = new StrategyHolder(); var garbageProcessor = new GarbageProcessor(strategyHolder); Type type = garbage.GetType(); DisposableAttribute disposalAttribute = (DisposableAttribute)type.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(DisposableAttribute)); IGarbageDisposalStrategy currentStrategy = new BurnableDisposalStrategy(); var expectedResult = currentStrategy.ProcessGarbage(garbage); // Act var actualResult = garbageProcessor.ProcessWaste(garbage); // Assert Assert.AreEqual(expectedResult, actualResult); }
public void TestRemoveStrategy() { StrategyHolder holder = new StrategyHolder(); BurnableDisposalStrategy burnStrategy = new BurnableDisposalStrategy(); RecyclableDisposalStrategy recStrategy = new RecyclableDisposalStrategy(); StorableDisposalStrategy storeStrategy = new StorableDisposalStrategy(); holder.AddStrategy( typeof(BurnableDisposableAttribute), burnStrategy); holder.AddStrategy( typeof(RecyclableDisposableAttribute), recStrategy); holder.AddStrategy( typeof(StorableDisposableAttribute), storeStrategy); holder.RemoveStrategy(typeof(BurnableDisposableAttribute)); holder.GetDisposalStrategy(typeof(BurnableDisposableAttribute)); }