Ejemplo n.º 1
0
        internal void Ingest_MultipleTicksDifferentSymbols_CorrectlyAddsTicksToRepository()
        {
            // Arrange
            var audusd = StubInstrumentProvider.AUDUSD();
            var eurusd = StubInstrumentProvider.EURUSD();

            this.repository.Update(audusd);
            this.repository.Update(eurusd);

            var tick1 = StubQuoteTickProvider.Create(audusd.Symbol);
            var tick2 = StubQuoteTickProvider.Create(audusd.Symbol, StubZonedDateTime.UnixEpoch() + Duration.FromDays(1));
            var tick3 = StubQuoteTickProvider.Create(audusd.Symbol, StubZonedDateTime.UnixEpoch() + Duration.FromDays(2));
            var tick4 = StubQuoteTickProvider.Create(eurusd.Symbol, StubZonedDateTime.UnixEpoch());
            var tick5 = StubQuoteTickProvider.Create(eurusd.Symbol, StubZonedDateTime.UnixEpoch() + Duration.FromDays(1));

            // Act
            this.repository.Ingest(tick1);
            this.repository.Ingest(tick2);
            this.repository.Ingest(tick3);
            this.repository.Ingest(tick4);
            this.repository.Ingest(tick5);

            // Assert
            // TODO: System.InvalidCastException : Specified cast is not valid. (inside StackExchange.Redis)
            // Assert.Equal(3, this.repository.TicksCount(audusd.Symbol));
            // Assert.Equal(2, this.repository.TicksCount(eurusd.Symbol));
        }
        internal void Add_WithCollectionOfInstruments_AddsAllToRepository()
        {
            // Arrange
            var instrument1 = StubInstrumentProvider.AUDUSD();
            var instrument2 = StubInstrumentProvider.EURUSD();
            var instrument3 = StubInstrumentProvider.USDJPY();

            // Act
            this.repository.Add(instrument1);
            this.repository.Add(instrument2);
            this.repository.Add(instrument3);
            var count = this.repository.GetAllKeys().Count;

            // Assert
            Assert.Equal(3, count);
        }
        internal void DeleteAll_WithThreeInstrumentsInRepository_DeletesAllFromRepository()
        {
            // Arrange
            var instrument1 = StubInstrumentProvider.AUDUSD();
            var instrument2 = StubInstrumentProvider.EURUSD();
            var instrument3 = StubInstrumentProvider.USDJPY();

            this.repository.Add(instrument1);
            this.repository.Add(instrument2);
            this.repository.Add(instrument3);

            // Act
            this.repository.DeleteAll();
            var result = this.repository.GetAllKeys();

            // Assert
            Assert.Equal(0, result.Count);
        }
Ejemplo n.º 4
0
        internal void GivenInstrumentsRequest_WithInstruments_ReturnsValidInstrumentResponse()
        {
            // Arrange
            var provider = new InstrumentProvider(
                this.container,
                this.messagingAdapter,
                this.repository,
                this.dataSerializer);

            provider.Start().Wait();

            var instrument1 = StubInstrumentProvider.AUDUSD();
            var instrument2 = StubInstrumentProvider.EURUSD();

            this.repository.Add(instrument1);
            this.repository.Add(instrument2);

            var query = new Dictionary <string, string>
            {
                { "DataType", "Instrument[]" },
                { "Venue", "FXCM" },
            };

            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(instrument1, data[0]);

            if (data.Length > 1)
            {
                Assert.Equal(instrument2, data[1]);
            }
        }
        internal void Add_WithMultipleInstruments_AddsToRepository()
        {
            // Arrange
            var instrument1 = StubInstrumentProvider.AUDUSD();
            var instrument2 = StubInstrumentProvider.EURUSD();
            var instrument3 = StubInstrumentProvider.USDJPY();

            this.repository.Add(instrument1);
            this.repository.Add(instrument2);
            this.repository.Add(instrument3);

            // Act
            this.repository.CacheAll();
            var result1 = this.repository.GetInstrument(instrument1.Symbol);
            var result2 = this.repository.GetInstrument(instrument2.Symbol);
            var result3 = this.repository.GetInstrument(instrument3.Symbol);

            // Assert
            Assert.Equal(instrument1, result1.Value);
            Assert.Equal(instrument2, result2.Value);
            Assert.Equal(instrument3, result3.Value);
        }