예제 #1
0
        public void GetLastTickOnEmptyTickFolder_Fails()
        {
            //Arrange
            var(dbFile, path, fileName) = SetupTempDb();

            var sqliteReg = new SQLiteRegistry(path, fileName);
            var randomCurrencyPairName = GetRandomCurrencyPairName(dbFile);

            (_, _, int currencyPairId)    = sqliteReg.GetCurrencyPairIdByName(randomCurrencyPairName);
            (_, int[] commandPortNumbers) = sqliteReg.GetAvailableCommandPortNumbers();
            int randomCommandPortNumber = commandPortNumbers[new Random().Next(0, commandPortNumbers.Length - 1)];

            (_, int[] feederPortNumbers) = sqliteReg.GetAvailableFeederPortNumbers();
            int    randomFeederPortNumber = feederPortNumbers[new Random().Next(0, feederPortNumbers.Length - 1)];
            string accountId = Guid.NewGuid().ToString();
            int    sessionId = 1;

            sqliteReg.RegisterSession(accountId, sessionId, currencyPairId, randomCommandPortNumber, randomFeederPortNumber);
            var tickWriter = sqliteReg.GetTickWriter(accountId, currencyPairId);

            //Act
            var result = tickWriter.LastTick;

            //Assert
            Assert.False(result.success);
        }
예제 #2
0
        public void WriteTick_Succeeds()
        {
            //Arrange
            var(dbFile, path, fileName) = SetupTempDb();

            var sqliteReg = new SQLiteRegistry(path, fileName);
            var randomCurrencyPairName = GetRandomCurrencyPairName(dbFile);

            (_, _, int currencyPairId)    = sqliteReg.GetCurrencyPairIdByName(randomCurrencyPairName);
            (_, int[] commandPortNumbers) = sqliteReg.GetAvailableCommandPortNumbers();
            int randomCommandPortNumber = commandPortNumbers[new Random().Next(0, commandPortNumbers.Length - 1)];

            (_, int[] feederPortNumbers) = sqliteReg.GetAvailableFeederPortNumbers();
            int    randomFeederPortNumber = feederPortNumbers[new Random().Next(0, feederPortNumbers.Length - 1)];
            string accountId = Guid.NewGuid().ToString();
            int    sessionId = 1;

            sqliteReg.RegisterSession(accountId, sessionId, currencyPairId, randomCommandPortNumber, randomFeederPortNumber);
            var tickWriter = sqliteReg.GetTickWriter(accountId, currencyPairId);
            var timestamp  = Timestamp.FromDateTime(DateTime.UtcNow);

            //Act
            var result = tickWriter.Write(timestamp.dateTime, timestamp.milliseconds, 1, 2);

            //Assert
            Assert.True(result.success);
        }
예제 #3
0
        public void GetTickUriOnNewDbPth_ShouldNotExist()
        {
            //Arrange
            var(dbFile, path, fileName) = SetupTempDb();

            var sqliteReg = new SQLiteRegistry(path, fileName);
            var randomCurrencyPairName = GetRandomCurrencyPairName(dbFile);

            (_, _, int currencyPairId)    = sqliteReg.GetCurrencyPairIdByName(randomCurrencyPairName);
            (_, int[] commandPortNumbers) = sqliteReg.GetAvailableCommandPortNumbers();
            int randomCommandPortNumber = commandPortNumbers[new Random().Next(0, commandPortNumbers.Length - 1)];

            (_, int[] feederPortNumbers) = sqliteReg.GetAvailableFeederPortNumbers();
            int    randomFeederPortNumber = feederPortNumbers[new Random().Next(0, feederPortNumbers.Length - 1)];
            string accountId = Guid.NewGuid().ToString();
            int    sessionId = 1;

            sqliteReg.RegisterSession(accountId, sessionId, currencyPairId, randomCommandPortNumber, randomFeederPortNumber);
            var tickWriter = sqliteReg.GetTickWriter(accountId, currencyPairId);

            //Act
            var tickUri = tickWriter.TickUri;

            //Assert
            Assert.False(Directory.Exists(tickUri));
        }