示例#1
0
        public void ShouldWorkNormally()
        {
            // Arrange
            var client  = A.Fake <IRestClient>();
            var options = Options.Create(new OpenFiscaOptions()
            {
                Url = "http://localhost:5000"
            });

            var response = new OpenFiscaResource();

            response.CreatePerson("test_person");
            response.SetProp("test_person", "test_key", 6);

            var postResult = A.Fake <RestResponse <OpenFiscaResource> >();

            postResult.Data       = response;
            postResult.StatusCode = System.Net.HttpStatusCode.OK;

            A.CallTo(() => client.Execute <OpenFiscaResource>(A <RestRequest> ._, Method.POST))
            .Returns(postResult);

            // Act
            var sut    = new OpenFiscaLib(client, options);
            var req    = new OpenFiscaResource();
            var result = sut.Calculate(req);

            // Assert
            Assert.Equal(6, result.GetProp("test_person", "test_key"));
        }
        public void ShouldWorkNormally()
        {
            // Arrange
            var testAmount   = 5555;
            var regionId     = Guid.NewGuid();
            var openFiscaLib = A.Fake <IOpenFisca>();

            var openFiscaResult = new OpenFiscaResource();

            openFiscaResult.CreatePerson("test_person");
            openFiscaResult.SetProp("test_person", OF.MaternityBenefitsAmount, testAmount);

            A.CallTo(() => openFiscaLib.Calculate(A <OpenFiscaResource> ._))
            .Returns(openFiscaResult);

            // Act
            var sut = new MaternityBenefitsOpenFiscaCalculator(openFiscaLib);

            var rule = new MaternityBenefitsCase()
            {
                MaxWeeklyAmount = 500,
                NumWeeks        = 10,
                Percentage      = 50,
            };
            var person = new MaternityBenefitsPerson()
            {
                AverageIncome = 1000
            };
            var result = sut.Calculate(rule, person);

            // Assert
            Assert.Equal(testAmount, result);
        }
示例#3
0
        public void ShouldWorkNormally()
        {
            // Arrange
            string  personKey = "personKey";
            string  propKey   = "propKey";
            decimal value     = 983.333m;

            var restClient = A.Fake <RestClient>();

            var openFiscaResponse = new OpenFiscaResource();

            openFiscaResponse.CreatePerson(personKey);
            openFiscaResponse.SetProp(personKey, propKey, value);

            var restResponse = new RestResponse <OpenFiscaResource> {
                Data       = openFiscaResponse,
                StatusCode = System.Net.HttpStatusCode.OK
            };

            A.CallTo(() => restClient.Execute <OpenFiscaResource>(A <RestRequest> ._, Method.POST))
            .Returns(restResponse);

            var options = Options.Create(new OpenFiscaOptions()
            {
                Url = "localhost:5000"
            });

            // Act
            var sut     = new OpenFiscaLib(restClient, options);
            var request = A.Fake <OpenFiscaResource>();
            var result  = sut.Calculate(request);

            // Assert
            Assert.Equal(value, result.GetProp(personKey, propKey));
        }
        private decimal ExtractResponse(OpenFiscaResource openFiscaResponse)
        {
            var personKey  = openFiscaResponse.persons.First().Key;
            var dictResult = openFiscaResponse.GetProp(personKey, OF.MaternityBenefitsAmount);

            return(Convert.ToDecimal(dictResult));
        }
        private OpenFiscaResource BuildResponse(decimal expectedResult)
        {
            var    result    = new OpenFiscaResource();
            string personKey = "person1";

            result.CreatePerson(personKey);
            result.SetProp(personKey, OF.TotalOTHours, expectedResult);
            return(result);
        }
示例#6
0
        private OpenFiscaResource BuildResponse(decimal expectedResult)
        {
            var    day1Key = "day_1";
            var    day2Key = "day_2";
            double day1Val = (double)expectedResult - 5;
            double day2Val = 5;
            var    result  = new OpenFiscaResource();

            result.CreatePerson(day1Key);
            result.CreatePerson(day2Key);
            result.SetProp(day1Key, OF.DailyOTHours, day1Val);
            result.SetProp(day2Key, OF.DailyOTHours, day2Val);
            return(result);
        }
示例#7
0
        public void ShouldFetchKeys()
        {
            // Arrange
            string  personKey = "myPersonKey";
            string  propKey   = "myPropKey";
            decimal value     = 99.23223m;

            // Act
            var sut = new OpenFiscaResource();

            sut.persons.Add(personKey, new Dictionary <string, Dictionary <string, object> >());
            sut.persons[personKey].Add(propKey, new Dictionary <string, object>());
            sut.persons[personKey][propKey].Add("dateKey", value);

            var result = sut.GetProp(personKey, propKey);

            // Assert
            Assert.Equal(value, result);
        }
示例#8
0
        public void ShouldCreateKeys()
        {
            // Arrange
            string  personKey = "myPersonKey";
            string  propKey   = "myPropKey";
            decimal value     = 99.23223m;

            // Act
            var sut = new OpenFiscaResource();

            sut.CreatePerson(personKey);
            sut.SetProp(personKey, propKey, value);

            // Assert
            var manualResult = sut.persons[personKey][propKey].First().Value;
            var getResult    = sut.GetProp(personKey, propKey);

            Assert.Equal(value, manualResult);
            Assert.Equal(value, getResult);
        }
        private OpenFiscaResource BuildRequest(MaternityBenefitsCase rule, MaternityBenefitsPerson person)
        {
            var    result     = new OpenFiscaResource();
            string personName = "person1";

            result.CreatePerson(personName);

            // Target value
            result.SetProp(personName, OF.MaternityBenefitsAmount, null);

            // Person vars
            decimal averageIncome = person.AverageIncome;

            result.SetProp(personName, OF.AverageIncome, averageIncome);

            // Parameter overrides
            result.SetProp(personName, OF.MaxWeeklyAmount, rule.MaxWeeklyAmount);
            result.SetProp(personName, OF.NumWeeks, rule.NumWeeks);
            result.SetProp(personName, OF.Percentage, rule.Percentage);

            return(result);
        }