public void TestMeasure(double availableWidth, double availableHeight)
        {
            var view     = new Mock <IRefreshIcon>();
            var drawable = new RefreshIconDrawable(view.Object);
            var size     = drawable.Measure(availableWidth, availableHeight);

            Assert.Equal(new Size(DeviceInfo.ScalingFactor, DeviceInfo.ScalingFactor), size);
        }
        public void TestDispose()
        {
            var view     = new Mock <IRefreshIcon>();
            var drawable = new RefreshIconDrawable(view.Object);

            drawable.Dispose();
            drawable = null;
            Assert.Null(drawable);
        }
        public void TestDraw(bool isRunning, float pullDistance)
        {
            var view = new Mock <IRefreshIcon>();

            view.Setup(x => x.IsRunning).Returns(isRunning);
            view.Setup(x => x.PullDistance).Returns(pullDistance);
            Assert.Equal(isRunning, view.Object.IsRunning);
            Assert.Equal(pullDistance, view.Object.PullDistance);

            var canvas    = new Mock <ICanvas>();
            var drawable  = new RefreshIconDrawable(view.Object);
            var exception = Record.Exception(() =>
            {
                drawable.Draw(canvas.Object, new RectF(0, 0, 100, 100));
            });

            Assert.Null(exception);
        }