public void GetDistance_Station1IsNull_Failed()
        {
            // Act
            var stationDistCalc = new DistanceCalculator.KmStationDistanceCalculator(Mock.Of <KmDistanceCalculator>());

            Assert.Throws(Is.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("station1"),
                          () => stationDistCalc.GetDistance(null, Mock.Of <IStation>()));
        }
        public void GetDistance_Success()
        {
            double distance = 10;

            var distCalcMock = new Mock <IDistanceCalculator>();

            distCalcMock.Setup(calc =>
                               calc.GetDistance(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <double>(), It.IsAny <double>()))
            .Returns(distance);

            // Act
            var stationDistCalc = new DistanceCalculator.KmStationDistanceCalculator(distCalcMock.Object);

            var result = stationDistCalc.GetDistance(Mock.Of <IStation>(), Mock.Of <IStation>());

            distCalcMock.Verify(calc =>
                                calc.GetDistance(It.IsAny <double>(), It.IsAny <double>(), It.IsAny <double>(), It.IsAny <double>()), Times.Once);

            Assert.AreEqual(result, distance, "Result distance is incorrect");
        }