public void DataPushRequestIsForwardedToLocalStorage() { var instrument = new Instrument { ID = 1, Symbol = "SPY", Datasource = new Datasource { ID = 1, Name = "MockSource" } }; var data = new List <OHLCBar> { new OHLCBar { Open = 1, High = 2, Low = 3, Close = 4, DT = new DateTime(2013, 1, 1) } }; var req = new DataAdditionRequest(BarSize.OneDay, instrument, data); _client.PushData(req); // TODO: Think about delay amount Thread.Sleep(50); _historicalDataBrokerMock.Verify( x => x.AddData( It.Is <DataAdditionRequest>( y => y.Frequency == BarSize.OneDay && y.Instrument.ID == 1 && y.Data.Count == 1) ), Times.Once); }
/// <summary> /// Pushes data to local storage. /// </summary> public void PushData(DataAdditionRequest request) { if (request == null) { RaiseEvent(Error, this, new ErrorArgs(-1, "Request cannot be null.")); return; } if (request.Instrument?.ID == null) { RaiseEvent(Error, this, new ErrorArgs(-1, "Instrument must be set and have an ID.")); return; } if (!Connected) { RaiseEvent(Error, this, new ErrorArgs(-1, "Could not push historical data to local storage - not connected.")); return; } lock (_historicalDataSocketLock) { if (_historicalDataSocket != null) { _historicalDataSocket.SendMoreFrame("HISTPUSH"); using (var ms = new MemoryStream()) { _historicalDataSocket.SendFrame(MyUtils.ProtoBufSerialize(request, ms)); } } } }
/// <summary> /// Forwards a data addition request to local storage. /// </summary> public void AddData(DataAdditionRequest request) { if (request.Data.Count == 0) { Log(LogLevel.Info, string.Format("HDB: AddData called with zero bars, request: {0}", request)); return; } lock (_localStorageLock) { _dataStorage.AddData(request.Data, request.Instrument, request.Frequency, request.Overwrite); } }
/// <summary> /// Pushes data to local storage. /// </summary> public void PushData(DataAdditionRequest request) { if (request.Instrument == null || request.Instrument.ID == null) { RaiseEvent(Error, null, new ErrorArgs(-1, "Instrument must be set and have an ID.")); return; } var ms = new MemoryStream(); lock (_dealerSocketLock) { _dealerSocket.SendMore("HISTPUSH"); _dealerSocket.Send(MyUtils.ProtoBufSerialize(request, ms)); } }
public void DataAdditionRequestsAreForwardedToLocalStorage() { var data = new List <OHLCBar> { new OHLCBar { Open = 1, High = 2, Low = 3, Close = 4, DT = new DateTime(2000, 1, 1) } }; var request = new DataAdditionRequest(BarSize.OneDay, _instrument, data, true); _broker.AddData(request); _localStorageMock.Verify(x => x.AddData( It.Is <List <OHLCBar> >(b => b.Count == 1 && b[0].Close == 4), It.Is <Instrument>(i => i.ID == 1 && i.Symbol == "SPY" && i.Datasource.Name == "MockSource"), It.Is <BarSize>(z => z == BarSize.OneDay), It.Is <bool>(k => k == true), It.IsAny <bool>()), Times.Once); }
/// <summary> /// Pushes data to local storage. /// </summary> public void PushData(DataAdditionRequest request) { if (request == null) { RaiseEvent(Error, this, new ErrorArgs(-1, "Request cannot be null.")); return; } if (request.Instrument?.ID == null) { RaiseEvent(Error, this, new ErrorArgs(-1, "Instrument must be set and have an ID.")); return; } if (!ClientRunningAndIsConnected) { RaiseEvent(Error, this, new ErrorArgs(-1, "Could not push historical data to local storage - not connected.")); return; } lock (historicalDataSocketLock) { if (historicalDataSocket != null) { historicalDataSocket.SendMoreFrame(BitConverter.GetBytes((byte)DataRequestMessageType.HistPush)); using (MemoryStream ms = new MemoryStream()) { historicalDataSocket.SendFrame(MyUtils.ProtoBufSerialize(request, ms)); } } } }