public void TestOneBarRequest() { smartCom.Setup(f => f.GetBars("FOO", StBarInterval.StBarInterval_1Min, new DateTime(2017, 12, 31), It.IsAny <int>())).Raises(f => f.AddBar += null, 0, 1, "FOO", StBarInterval.StBarInterval_1Min, new DateTime(2017, 12, 31, 10, 00, 00), 10, 12, 9, 11, 1000, 200000); RequestSocket sock = new RequestSocket(">inproc://hsp"); JObject req = new JObject(); req["ticker"] = "FOO"; req["from"] = "2017-01-01"; req["to"] = "2017-12-31"; req["timeframe"] = "M1"; sock.SendFrame(req.ToString()); List <byte[]> respParts = new List <byte[]>(); bool rc = sock.TryReceiveMultipartBytes(TimeSpan.FromSeconds(5), ref respParts); Assert.IsTrue(rc); Assert.AreEqual(2, respParts.Count); Assert.AreEqual("OK", utf8.GetString(respParts[0])); MemoryStream stream = new MemoryStream(); BarSerializer.WriteToStream(stream, new Bar(new DateTime(2017, 12, 31, 10, 00, 00), 10, 12, 9, 11, 1000)); CollectionAssert.AreEqual(stream.ToArray(), respParts[1]); }
public BarProviderTests(ITestOutputHelper output) : base(output) { // Fixture Setup this.container = TestComponentryContainer.Create(output); this.messagingAdapter = new MockMessageBusProvider(this.container).Adapter; this.barSerializer = new BarSerializer(); this.repository = new MockMarketDataRepository( this.container, new QuoteTickSerializer(), new TradeTickSerializer(), this.barSerializer, DataBusFactory.Create(this.container)); }
public DataPublisherTests(ITestOutputHelper output) : base(output) { // Fixture Setup var container = TestComponentryContainer.Create(output); this.barSerializer = new BarSerializer(); this.instrumentSerializer = new InstrumentSerializer(); this.publisher = new DataPublisher( container, DataBusFactory.Create(container), this.instrumentSerializer, new BypassCompressor(), EncryptionSettings.None(), new Port(55511)); }
internal void CanSerializeAndDeserialize_BarDataResponses() { // Arrange var dataSerializer = new BarSerializer(); var symbol = new Symbol("AUD/USD", new Venue("FXCM")); var barSpec = new BarSpecification(1, BarStructure.Minute, PriceType.Bid); var correlationId = Guid.NewGuid(); var bars = new[] { StubBarProvider.Build(), StubBarProvider.Build() }; var serializedBars = dataSerializer.Serialize(bars); var metadata = new Dictionary <string, string> { { "Symbol", symbol.Value }, { "Specification", barSpec.ToString() }, }; var data = dataSerializer.SerializeBlob(serializedBars, metadata); var response = new DataResponse( data, typeof(Bar[]).Name, dataSerializer.BlobEncoding, correlationId, Guid.NewGuid(), StubZonedDateTime.UnixEpoch()); // Act var serializedResponse = this.serializer.Serialize(response); var deserializedResponse = (DataResponse)this.serializer.Deserialize(serializedResponse); var deserializedData = dataSerializer.DeserializeBlob(deserializedResponse.Data); // Assert Assert.Equal(response, deserializedResponse); Assert.Equal(bars, deserializedData); Assert.Equal(correlationId, deserializedResponse.CorrelationId); this.Output.WriteLine(Convert.ToBase64String(serializedResponse)); this.Output.WriteLine(Encoding.UTF8.GetString(serializedResponse)); }