public void CheckValidTimeStamp()
        {
            double validTimeStamp          = DateTime.Now.AddSeconds(-30).GetDateTimeNoEpoch();
            SaveMineralDataCommand command = new SaveMineralDataCommand(validChangeDto, validTimeStamp);
            bool isValid = command.IsValid();

            Assert.IsTrue(isValid);
            Assert.IsNotNull(validChangeDto);
        }
        public void CheckInvalidTimeStamp()
        {
            double invalidTimeStamp = DateTime.Now
                                      .AddMinutes(-2)
                                      .GetDateTimeNoEpoch();

            SaveMineralDataCommand command = new SaveMineralDataCommand(validChangeDto, invalidTimeStamp);
            bool isValid = command.IsValid();

            Assert.IsFalse(isValid);
            Assert.IsNotNull(validChangeDto);
        }
        public void CheckInvalidChangeDto()
        {
            double validTimeStamp = DateTime.Now
                                    .GetDateTimeNoEpoch();

            SaveMineralDataCommand command = new SaveMineralDataCommand(invalidChangeDto, validTimeStamp);
            bool isValid = command.IsValid();

            Assert.IsFalse(isValid);
            Assert.IsNotNull(invalidChangeDto);
            Assert.IsNull(invalidChangeDto.Currency);
            Assert.IsNull(command.PriceData.Currency);
        }
Esempio n. 4
0
        public async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            GoldDataDto goldData = await _httpClient.GetGoldValues <GoldDataDto>();

            ChangeDto dataChange = goldData.Children.FirstOrDefault();

            SaveMineralDataCommand saveGoldDataCommand = new SaveMineralDataCommand(dataChange, goldData.TimeStamp);

            if (saveGoldDataCommand.IsValid())
            {
                _commandDispatcher.Execute(saveGoldDataCommand);
            }

            double goldValue = dataChange?.XauPrice ?? 0;

            _logger.LogWarning($" Gold Data Received at : {DateTime.Now} is {goldValue}");
        }