Esempio n. 1
0
        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]);
        }
Esempio n. 2
0
 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));
 }
Esempio n. 3
0
        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));
        }