コード例 #1
0
        public void ProcessWaste_SomeWaste_ThrowsException()
        {
            var holder  = new StrategyHolder();
            var garbage = new GarbageProcessor(holder);

            var waste = new StorableWaste("NuclearWaste", 10, 10);

            Assert.That(() => garbage.ProcessWaste(waste), Throws.ArgumentException);
        }
コード例 #2
0
        public void ProcessWaste_StorableWaste_Success()
        {
            var garbage = new StorableWaste("NuclearWaste", 10, 10);

            var result = this.garbageProcessor.ProcessWaste(garbage);

            Assert.That(result.CapitalBalance, Is.EqualTo(-65));
            Assert.That(result.EnergyBalance, Is.EqualTo(-13));
        }
コード例 #3
0
        public void ProcessWaste_ShouldThrowArgumentException()
        {
            // Arrange
            var garbage          = new StorableWaste("glass", 10.5, 1.2);
            var strategyHolder   = new StrategyHolder();
            var garbageProcessor = new GarbageProcessor(strategyHolder);

            // Act and Assert
            garbageProcessor.ProcessWaste(garbage);
        }
コード例 #4
0
        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);
        }