コード例 #1
0
        internal void CanSerializeAndDeserialize_TickDataResponse()
        {
            // Arrange
            var dataSerializer = new QuoteTickSerializer();
            var datetimeFrom   = StubZonedDateTime.UnixEpoch() + Duration.FromMinutes(1);
            var datetimeTo     = datetimeFrom + Duration.FromMinutes(1);

            var symbol = new Symbol("AUD/USD", new Venue("FXCM"));

            var tick1 = new QuoteTick(
                symbol,
                Price.Create(1.00000m),
                Price.Create(1.00000m),
                Quantity.One(),
                Quantity.One(),
                datetimeFrom);

            var tick2 = new QuoteTick(
                symbol,
                Price.Create(1.00010m),
                Price.Create(1.00020m),
                Quantity.One(),
                Quantity.One(),
                datetimeTo);

            var ticks = new[] { tick1, tick2 };

            var correlationId = Guid.NewGuid();
            var id            = Guid.NewGuid();

            var metadata = new Dictionary <string, string> {
                { "Symbol", symbol.Value }
            };
            var serializedTicks = dataSerializer.Serialize(ticks);
            var data            = dataSerializer.SerializeBlob(serializedTicks, metadata);

            var response = new DataResponse(
                data,
                typeof(Tick[]).Name,
                dataSerializer.BlobEncoding,
                correlationId,
                id,
                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(tick1, deserializedData[0]);
            Assert.Equal(tick2, deserializedData[1]);
            Assert.Equal(correlationId, deserializedResponse.CorrelationId);
            this.Output.WriteLine(Convert.ToBase64String(serializedResponse));
            this.Output.WriteLine(Encoding.UTF8.GetString(serializedResponse));
        }
コード例 #2
0
 public TickProviderTests(ITestOutputHelper output)
     : base(output)
 {
     // Fixture Setup
     this.container        = TestComponentryContainer.Create(output);
     this.messagingAdapter = new MockMessageBusProvider(this.container).Adapter;
     this.tickSerializer   = new QuoteTickSerializer();
     this.repository       = new MockMarketDataRepository(
         this.container,
         this.tickSerializer,
         new TradeTickSerializer(),
         new BarSerializer(),
         DataBusFactory.Create(this.container));
 }