public void FailWhenRallyDoesNotExist()
        {
            var rallyId   = "2019";
            var vehicleId = "vehicle1";
            var service   = new VehicleStatisticsService(
                CommonBuilders.SetUpRepoWithNoRally(rallyId).Object,
                new FakeVehicleStatisticsFactory(GetExpectedStats()));

            var result = service.GetVehicleStatistics(rallyId, vehicleId);

            Assert.True(result.IsFailure);
            Assert.Equal(ErrorMessages.RallyNotFound, result.Error);
        }
        public void FailWhenVehicleDoesNotExist()
        {
            var rallyId   = "2019";
            var vehicleId = "vehicle1";
            var rallyRepo = CommonBuilders.SetUpRepoWithRally(
                rallyId,
                CommonBuilders.GetRallyThatDoesNotHaveVehicle(vehicleId));
            var service = new VehicleStatisticsService(rallyRepo, new FakeVehicleStatisticsFactory(GetExpectedStats()));

            var result = service.GetVehicleStatistics(rallyId, vehicleId);

            Assert.True(result.IsFailure);
            Assert.Equal(ErrorMessages.VehicleDoesNotExist, result.Error);
        }
        public void GetStatisticsWhenVehicleExists()
        {
            var rallyId       = "2019";
            var vehicleId     = "vehicle1";
            var fakeVehicle   = new FakeVehicle(vehicleId);
            var expectedStats = GetExpectedStats();
            var rallyRepo     = CommonBuilders.SetUpRepoWithRally(
                rallyId,
                CommonBuilders.GetRallyThatHasVehicle(vehicleId, fakeVehicle));
            var service = new VehicleStatisticsService(rallyRepo, new FakeVehicleStatisticsFactory(expectedStats));

            var result = service.GetVehicleStatistics(rallyId, vehicleId);

            Assert.True(result.IsSuccess);
            Assert.Equal(expectedStats, result.Value);
        }