public void GivenTokenQueueFactory_WhenNumberBeforeCurrency_ThenCurrencyAmount() { var lexer = CreateLexer("10EUR"); var tokenQueueFactory = new TokenQueueFactory(); var queue = tokenQueueFactory.Create(lexer); var token = queue.Dequeue(); Assert.AreEqual(TokenType.CurrencyAmount, token.Type); }
public ExpressionExtractorTests() { var currencyService = new TestCurrencyService(); var tokenQueueFactory = new TokenQueueFactory(); var coinMarketCapClient = new TestCoinMarketCapClient(); var fixerClient = new TestFixerClient(); var currencyConverter = new CurrencyConverter(coinMarketCapClient, fixerClient); var tokenConverter = new TokenConverter(currencyConverter, currencyService, coinMarketCapClient, fixerClient); var interpreterFactory = new InterpreterFactory(tokenConverter, currencyService, tokenQueueFactory); this.expressionExtractor = new ExpressionExtractor(interpreterFactory); }
private Interpreter CreateInterpreter(string text) { var connectionStringFactory = new TestConnectionStringFactory(); var currencyService = new CurrencyService(connectionStringFactory); var lexer = new Lexer(text, currencyService); var tokenQueueFactory = new TokenQueueFactory(); var parser = new Parser(lexer, tokenQueueFactory); var coinMarketCapClient = new CoinMarketCapClient(); var fixerClient = new FixerClient(); var currencyConverter = new CurrencyConverter(coinMarketCapClient, fixerClient); var currencyAmountTokenConverter = new TokenConverter(currencyConverter, currencyService, coinMarketCapClient, fixerClient); return(new Interpreter(parser, currencyAmountTokenConverter)); }
public void GivenTokenQueueFactory_WhenMultipleMerge_ThenSuccess() { var lexer = CreateLexer("€1 < 1BTC"); var tokenQueueFactory = new TokenQueueFactory(); var queue = tokenQueueFactory.Create(lexer); var token = queue.Dequeue(); Assert.AreEqual(TokenType.CurrencyAmount, token.Type); token = queue.Dequeue(); Assert.AreEqual(TokenType.SmallerThan, token.Type); token = queue.Dequeue(); Assert.AreEqual(TokenType.CurrencyAmount, token.Type); }
public void GivenTokenQueueFactory_WhenDequeue_ThenCorrectOrder() { var lexer = CreateLexer(@"1 > ""2"""); var tokenQueueFactory = new TokenQueueFactory(); var queue = tokenQueueFactory.Create(lexer); var token = queue.Dequeue(); Assert.AreEqual(TokenType.Number, token.Type); token = queue.Dequeue(); Assert.AreEqual(TokenType.LargerThan, token.Type); token = queue.Dequeue(); Assert.AreEqual(TokenType.String, token.Type); }
public UnitTest1() { var settings = new TestBotSettings(); var connectionStringFactory = new TestConnectionStringFactory(); var coinmarkcapClient = new CoinMarketCapClientCachingDecorator(new CoinMarketCapClient()); var fixerClient = new FixerClientCachingDecorator(new FixerClient()); var currencyConverter = new CurrencyConverter(coinmarkcapClient, fixerClient); var redditClientFactory = new RedditClientFactory(); this.currencyService = new CurrencyService(connectionStringFactory); this.remindRequestService = new RemindRequestService(connectionStringFactory); var tokenConverter = new TokenConverter(currencyConverter, currencyService, coinmarkcapClient, fixerClient); var tokenQueueFactory = new TokenQueueFactory(); var interpreterFactory = new InterpreterFactory(tokenConverter, currencyService, tokenQueueFactory); var expressionExtractor = new ExpressionExtractor(interpreterFactory); this.unreadMessageReader = new RedditUnreadMessagesReader(settings, remindRequestService, expressionExtractor, redditClientFactory); this.remindRequestHandler = new RemindRequestHandler(settings, remindRequestService, interpreterFactory, redditClientFactory); }