internal void GivenInstrumentsRequest_WithNoInstruments_ReturnsQueryFailedMessage() { // Arrange var provider = new InstrumentProvider( this.container, this.messagingAdapter, this.repository, this.dataSerializer); provider.Start().Wait(); var query = new Dictionary <string, string> { { "DataType", "Instrument[]" }, { "Venue", "FXCM" }, }; var request = new DataRequest( query, Guid.NewGuid(), StubZonedDateTime.UnixEpoch()); // Act var response = (QueryFailure)provider.FindData(request); // Assert Assert.Equal(typeof(QueryFailure), response.Type); }
internal void GivenInstrumentRequest_WithInstrument_ReturnsValidInstrumentResponse() { // Arrange var provider = new InstrumentProvider( this.container, this.messagingAdapter, this.repository, this.dataSerializer); provider.Start().Wait(); var instrument = StubInstrumentProvider.AUDUSD(); this.repository.Add(instrument); var query = new Dictionary <string, string> { { "DataType", "Instrument[]" }, { "Symbol", instrument.Symbol.Value }, }; var request = new DataRequest( query, Guid.NewGuid(), StubZonedDateTime.UnixEpoch()); // Act var response = (DataResponse)provider.FindData(request); var data = this.dataSerializer.DeserializeBlob(response.Data); // Assert Assert.Equal(typeof(DataResponse), response.Type); Assert.Equal(instrument, data[0]); }
static FutureMasterAndCorrelation GetSingleContractCorrelation(CurrencyType baseCurrency, CurrencyType quoteCurrency) { var item = _futuresMap.SingleOrDefault(m => m.CurrencyPairBase == baseCurrency.ToForexCode() && m.CurrencyPairQuote == quoteCurrency.ToForexCode()); if (null != item) { return new FutureMasterAndCorrelation { FutureMaster = InstrumentProvider.GetFutureMaster(SymbolProviderType.Generic, item.FutureMasterName), Correlation = 1, } } ; item = _futuresMap.SingleOrDefault(m => m.CurrencyPairBase == quoteCurrency.ToForexCode() && m.CurrencyPairQuote == baseCurrency.ToForexCode()); if (null != item) { return new FutureMasterAndCorrelation { FutureMaster = InstrumentProvider.GetFutureMaster(SymbolProviderType.Generic, item.FutureMasterName), Correlation = -1, } } ; return(null); }
public IFutureContract[] GetContinuousFutureContracts(ICurrencyPair currencyPair) { var futureMasters = GetCurrencyFuturesCorrelations(currencyPair).FutureMastersCorrelations.Select(c => c.FutureMaster); return(futureMasters.Select(fm => InstrumentProvider.GetContinuousFutureContract(fm)).ToArray()); }