Beispiel #1
0
        private static void RunChangeCalculator()
        {
            _changeCalculator = new Infrastructure.Instances.ChangeCalculator();

            while (true)
            {
                var itemCostResult = GetInputValue("item cost");

                if (itemCostResult.exit)
                {
                    return;
                }

                var amountGivenResult = GetInputValue("amount given");

                if (amountGivenResult.exit)
                {
                    return;
                }

                var change = _changeCalculator.CalculateChange
                                 (amountGivenResult.value, itemCostResult.value);
                if (change < 0)
                {
                    continue;
                }
                _changeCalculator.GiveChange(change);
                break;
            }
        }
 public static Task <ChangeCalculatorResult> CalculateChanges(
     this IChangeCalculator calculator,
     IEnumerable <CodeSource> oldCode,
     IEnumerable <CodeSource> newCode,
     CancellationToken cancellationToken)
 {
     return(CalculateChanges(calculator, oldCode, newCode, ComparerOptions.Default, cancellationToken));
 }
        public void Setup()
        {
            _mockChangeCalculator         = MockRepository.GenerateMock <IChangeCalculator>();
            _mockVendingMachineRepository = MockRepository.GenerateMock <IVendingMachineRepository>();

            _fixture = new Fixture();
            _sut     = new PurchaseHandler(_mockChangeCalculator, _mockVendingMachineRepository);
        }
Beispiel #4
0
 public VMachine(
     Wallet wallet, Inventory stock,
     PricesProvider pricesProvider, IChangeCalculator changeCalculator
     )
 {
     State             = new ReadyToSellProduct(wallet, stock, pricesProvider, this);
     _changeCalculator = changeCalculator;
 }
        public InterfaceDefinitionTests(ITestOutputHelper output)
        {
            _output = output;

            var logger = output.BuildLogger(LogLevel.Information);

            _calculator = ChangeCalculatorFactory.BuildCalculator(logger);
        }
        public PurchaseHandler(IChangeCalculator changeCalculator, IVendingMachineRepository vendingMachineRepository)
        {
            CoinsEntered     = new List <double>();
            TransactionState = TransactionState.StandBy;

            _changeCalculator         = changeCalculator;
            _vendingMachineRepository = vendingMachineRepository;
        }
        public static ChangeCalculatorResult CalculateChanges(
            this IChangeCalculator calculator,
            IEnumerable <SyntaxNode> oldNodes,
            IEnumerable <SyntaxNode> newNodes)
        {
            var options = ComparerOptions.Default;

            return(CalculateChanges(calculator, oldNodes, newNodes, options));
        }
        public static ChangeCalculatorResult CalculateChanges(
            this IChangeCalculator calculator,
            IEnumerable <SyntaxNode> oldNodes,
            IEnumerable <SyntaxNode> newNodes,
            ComparerOptions options)
        {
            calculator = calculator ?? throw new ArgumentNullException(nameof(calculator));
            oldNodes   = oldNodes ?? throw new ArgumentNullException(nameof(oldNodes));
            newNodes   = newNodes ?? throw new ArgumentNullException(nameof(newNodes));
            options    = options ?? throw new ArgumentNullException(nameof(options));

            var oldTypes = ResolveDeclaredTypes(oldNodes);
            var newTypes = ResolveDeclaredTypes(newNodes);

            return(calculator.CalculateChanges(oldTypes, newTypes, options));
        }
        public static async Task <ChangeCalculatorResult> CalculateChanges(
            this IChangeCalculator calculator,
            IEnumerable <CodeSource> oldCode,
            IEnumerable <CodeSource> newCode,
            ComparerOptions options,
            CancellationToken cancellationToken)
        {
            calculator = calculator ?? throw new ArgumentNullException(nameof(calculator));
            oldCode    = oldCode ?? throw new ArgumentNullException(nameof(oldCode));
            newCode    = newCode ?? throw new ArgumentNullException(nameof(newCode));

            // Convert all the old and new code into SyntaxNode objects
            var oldTask = ParseCode(oldCode, cancellationToken);
            var newTask = ParseCode(newCode, cancellationToken);

            await Task.WhenAll(oldTask, newTask).ConfigureAwait(false);

            var oldNodes = oldTask.Result;
            var newNodes = newTask.Result;

            return(CalculateChanges(calculator, oldNodes, newNodes, options));
        }
 public VendingMachine(IChangeCalculator changeCalculator)
 {
     _changeCalculator = changeCalculator;
     Products          = new List <Product>();
     InitializeMachineWithProducts();
 }
        public ClassChangesTests(ITestOutputHelper output)
        {
            var logger = output.BuildLogger(LogLevel.Information);

            _calculator = ChangeCalculatorFactory.BuildCalculator(logger);
        }
Beispiel #12
0
 public VendingMachineProvider(IChangeCalculator changeCalculator)
 {
     _changeCalculator = changeCalculator;
 }
Beispiel #13
0
 public HomeController(IChangeCalculator changeCalculator)
 {
     this.changeCalculator = changeCalculator;
 }
 public void Dispose()
 {
     VendingMachine   = null;
     ChangeCalculator = null;
 }
 public VendingMachineTestBase()
 {
     VendingMachine   = new VendingMachine();
     ChangeCalculator = new ChangeCalculator();
 }