示例#1
0
        public void ShouldReturnErrorWhenRiskDataErrors(RiskData data, string expectedMessage)
        {
            var request = new PriceRequest()
            {
                RiskData = data
            };

            var errorResult = string.Empty;

            priceEngine.GetPrice(request, out errorResult);

            Assert.AreEqual(expectedMessage, errorResult);
        }
示例#2
0
        public async Task ItFailsIfNoQuotesReturned()
        {
            var priceEngine = new PriceEngine(CreatePriceRequestValidatorMock().Object, new List <IQuotationSystem>());
            var priceResult = await priceEngine.GetPrice(new PriceRequest());

            Assert.False(priceResult.Success);
            Assert.Equal("QUOTATION", priceResult.Error.First().Key);
            Assert.Equal("Failed to fetch a quote", priceResult.Error.First().Value.First());
        }
示例#3
0
        public async Task ItReturnsLowestQuotePrice()
        {
            var quotationSystems = new List <IQuotationSystem>
            {
                CreateQuotationSystemMock(3).Object,
                CreateQuotationSystemMock(2).Object,
                CreateQuotationSystemMock(4).Object
            };

            var priceEngine = new PriceEngine(CreatePriceRequestValidatorMock().Object, quotationSystems);
            var priceResult = await priceEngine.GetPrice(new PriceRequest());

            Assert.True(priceResult.Success);
            Assert.Equal(2, priceResult.Value.Price);
        }