public void ShouldWorkNormally()
        {
            // Arrange
            string  personName     = "person1";
            var     simulationCase = BuildSimulationCase();
            var     person         = BuildPerson();
            decimal dailyResult    = 10m;

            // // Act
            var sut = new AggregateRequestBuilder();

            var result = sut.Build(simulationCase, person, dailyResult);

            // Assert
            Assert.Single(result.persons.Keys);
            Assert.Null(result.GetProp(personName, OF.TotalOTHours));
            Assert.Equal(1, result.GetProp(personName, OF.NumHolidaysInPeriod));
            Assert.Equal(0, result.GetProp(personName, OF.WeeklyBusHours));
            Assert.Equal(7d, result.GetProp(personName, OF.WeeklyCmvoHours));
            Assert.Equal(13d, result.GetProp(personName, OF.WeeklyHmvoHours));
            Assert.Equal(16d, result.GetProp(personName, OF.WeeklyOtherHours));

            Assert.Equal(8d, result.GetProp(personName, OF.StandardClcDailyHours));
            Assert.Equal(40d, result.GetProp(personName, OF.StandardClcWeeklyHours));
            Assert.Equal(9d, result.GetProp(personName, OF.StandardCmvoDailyHours));
            Assert.Equal(45d, result.GetProp(personName, OF.StandardCmvoWeeklyHours));
            Assert.Equal(10d, result.GetProp(personName, OF.StandardHmvoHolidayReduction));
            Assert.Equal(60d, result.GetProp(personName, OF.StandardHmvoWeeklyHours));

            Assert.Equal(10m, result.GetProp(personName, OF.DailyOTHours));
        }
        private MotorVehicleRuleExecutor GetSystem()
        {
            var restClient       = new RestClient();
            var openFiscaOptions = new OpenFiscaOptions()
            {
                Url = "https://openfiscacanada-dts-csps-main.dev.dts-stn.com"
            };
            var options = Options.Create(openFiscaOptions);

            var openFiscaLib = new OpenFiscaLib(restClient, options);

            var dailyRequestBuilder      = new DailyRequestBuilder();
            var dailyResultExtractor     = new DailyResultExtractor();
            var aggregateRequestBuilder  = new AggregateRequestBuilder();
            var aggregateResultExtractor = new AggregateResultExtractor();
            var executor = new MotorVehicleRuleExecutor(openFiscaLib, dailyRequestBuilder, aggregateRequestBuilder, dailyResultExtractor, aggregateResultExtractor);

            return(executor);
        }