Exemple #1
0
        public void Add_FigureTypeMismatch_Throws()
        {
            var series = new FigureSeries(typeof(FakeFigure));

            series.Add(FigureFactory.New(2015, 5));
            var ex = Assert.Throws <ArgumentException>(() => series.Add(FigureFactory.NewPrice("2013-11-11", 7, Dollar)));

            Assert.That(ex.Message, Does.Contain("FigureType mismatch"));
        }
        public void ProvideValue_PriceWithoutCurrency_Throws()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, null);
            myRhsSeries    = new FigureSeries(typeof(FakeFigure), FigureFactory.New(2015, 1));

            var ex = Assert.Throws <ArgumentException>(() => myProvider.ProvideValue(myContext.Object));

            Assert.That(ex.Message, Does.Contain("Currency missing"));
        }
        public void ProvideValue_WhenCalled_InputsReferenced()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = new FigureSeries(typeof(FakeCurrencyFigure), FigureFactory.New(2015, 23, Euro), FigureFactory.New(2014, 37, Euro));

            var result = ( DerivedFigure )myProvider.ProvideValue(myContext.Object);

            Assert.That(result.Inputs, Is.EquivalentTo(new[] { myCurrentPrice, myRhsSeries.ElementAt(1) }));
        }
        public void ProvideValue_RhsHasNoDataForPeriod_MissingDataForPeriodReturned()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = new FigureSeries(typeof(FakeCurrencyFigure), FigureFactory.New(2001, 1, Euro));

            var result = myProvider.ProvideValue(myContext.Object);

            Assert.That(result, Is.InstanceOf <MissingDataForPeriod>());
            Assert.That((( MissingDataForPeriod )result).Figure, Is.EqualTo(RhsSeriesName));
        }
        public void ProvideValue_RhsSeriesEmpty_ReturnsMissingData()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = FigureSeries.Empty;

            var result = myProvider.ProvideValue(myContext.Object);

            Assert.That(result, Is.InstanceOf <MissingData>());
            Assert.That((( MissingData )result).Figure, Is.EqualTo(RhsSeriesName));
        }
        public void ProvideValue_SeriesWithoutCurrency_CurrencyOfPriceTaken()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = new FigureSeries(typeof(FakeFigure), FigureFactory.New(2015, 23), FigureFactory.New(2014, 37));

            var result = ( DerivedFigure )myProvider.ProvideValue(myContext.Object);

            Assert.That(result.Currency, Is.EqualTo(myCurrentPrice.Currency));
            Assert.That(result.Value, Is.EqualTo(17.21 + 23));
        }
        public void ProvideValue_WithValidInputData_RatioReturned()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = new FigureSeries(typeof(FakeCurrencyFigure), FigureFactory.New(2015, 23, Euro), FigureFactory.New(2014, 37, Euro));

            var result = ( ICurrencyFigure )myProvider.ProvideValue(myContext.Object);

            Assert.That(result.Period, Is.EqualTo(myCurrentPrice.Period));
            Assert.That(result.Value, Is.EqualTo(17.21 + 23));
            Assert.That(result.Currency, Is.EqualTo(myCurrentPrice.Currency));
        }
        public void ProvideValue_InconsistentCurrencies_PriceCurrencyTranslated()
        {
            myCurrentPrice = FigureFactory.NewPrice("2015-01-01", 17.21, Euro);
            myRhsSeries    = new FigureSeries(typeof(FakeCurrencyFigure), FigureFactory.New(2015, 23, Dollar), FigureFactory.New(2014, 37, Dollar));
            myContext.Setup(x => x.TranslateCurrency(It.IsAny <double>(), It.IsAny <Currency>(), It.IsAny <Currency>()))
            .Returns <double, Currency, Currency>((value, source, target) => value * 2);

            var result = ( DerivedFigure )myProvider.ProvideValue(myContext.Object);

            Assert.That(result.Currency, Is.EqualTo(myRhsSeries.Currency));
            Assert.That(result.Value, Is.EqualTo(17.21 * 2 + 23));
        }