Example #1
0
        public async Task <IActionResult> PostAsync([FromBody] string censoData)
        {
            if (string.IsNullOrWhiteSpace(censoData))
            {
                return(BadRequest(new { error = $"{nameof(censoData)} must not be empty" })); // BadRequest
            }
            var mappings = await censoMappingRepository.GetAll();

            if (mappings == null || mappings.Count() < 1)
            {
                return(StatusCode(500, new { error = $"No mapping found" }));
            }

            EngineCenso engine        = new EngineCenso();
            var         viableMappers = engine.FindViableMappers(mappings.Select(x => x.ToPropertyMapper()), censoData);

            if (viableMappers == null || viableMappers.Count() < 1)
            {
                return(StatusCode(500, new { error = $"No mappings able to parse data" }));
            }

            if (viableMappers.Count() > 1)
            {
                logger.LogWarning($"{viableMappers.Count()} viable mappers found for input {censoData}.");
            }

            var output = engine.Process(censoData, viableMappers.First());

            return(Json(output));
        }
Example #2
0
        public void InputNoModeloMG_ComUmaRegiaoComUmaCidadeEDoisBairros_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""regions"":[
        {
            ""name"": ""Triangulo Mineiro"",
            ""cities"": [
                {
                    ""name"": ""Uberlandia"",
                    ""population"": 700001,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Santa Monica"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 13012
                        },
                        {
                            ""name"": ""Fundinho"",
                            ""zone"": ""Centro"",
                            ""population"": 19864
                        }
                    ]
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            },
                            new Bairro()
                            {
                                Nome       = "Fundinho",
                                Habitantes = 19864
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, jsonMgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #3
0
        public void InputNoModeloMG_ComUmaRegiaoComUmaCidadeEDoisBairros_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<body>
    <region>
        <name>Triangulo Mineiro</name>
        <cities>
            <city>
                <name>Uberlandia</name>
                <population>700001</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Santa Monica</name>
                        <zone>Zona Leste</zone>
                        <population>13012</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Fundinho</name>
                        <zone>Centro</zone>
                        <population>19864</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
</body>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            },
                            new Bairro()
                            {
                                Nome       = "Fundinho",
                                Habitantes = 19864
                            }
                        }
                    }
                }
            };

            EngineCenso engine = new EngineCenso(new List <CensoPropertyMapper> {
                ModeloACTests.acMapper, ModeloRJTests.rjMapper, ModeloMGTests.mgMapper
            });
            var actualOutput = engine.Process(input);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #4
0
        public async Task <IActionResult> PostAsync([FromBody] string censoData)
        {
            var mappings = await censoMappingRepository.GetAll();

            EngineCenso engine = new EngineCenso(mappings.Select(x => x.ToPropertyMapper()));
            var         output = engine.Process(censoData);

            return(Json(output));
        }
Example #5
0
        public void InputNoModeloAC_ComUmaCidadeEDoisBairros_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""cities"":[
        {
            ""name"":""Rio Branco"",
            ""population"":576589,
            ""neighborhoods"":[
                {
                    ""name"":""Habitasa"",
                    ""population"":7503
                },
                {
                    ""name"":""Areial"",
                    ""population"":5310
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Rio Branco",
                        Habitantes = 576589,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Habitasa",
                                Habitantes = 7503
                            },
                            new Bairro()
                            {
                                Nome       = "Areial",
                                Habitantes = 5310
                            }
                        }
                    }
                }
            };

            EngineCenso engine = new EngineCenso(new List <CensoPropertyMapper> {
                ModeloACTests.acMapper, ModeloRJTests.rjMapper, ModeloMGTests.mgMapper
            });
            var actualOutput = engine.Process(input);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #6
0
        public void InputNoModeloRJ_ComUmaCidadeEDoisBairros_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<corpo>
    <cidade>
        <nome>Rio de Janeiro</nome>
        <populacao>10345678</populacao>
        <bairros>
            <bairro>
                <nome>Tijuca</nome>
                <regiao>Zona Norte</regiao>
                <populacao>135678</populacao>
            </bairro>
            <bairro>
                <nome>Botafogo</nome>
                <regiao>Zona Sul</regiao>
                <populacao>12456</populacao>
            </bairro>
        </bairros>
    </cidade>
</corpo>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Rio de Janeiro",
                        Habitantes = 10345678,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Tijuca",
                                Habitantes = 135678
                            },
                            new Bairro()
                            {
                                Nome       = "Botafogo",
                                Habitantes = 12456
                            }
                        }
                    }
                }
            };

            EngineCenso engine = new EngineCenso(new List <CensoPropertyMapper> {
                ModeloACTests.acMapper, ModeloRJTests.rjMapper, ModeloMGTests.mgMapper
            });
            var actualOutput = engine.Process(input);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #7
0
        public void InputNoModeloMG_ComUmaRegiaoComUmaCidadeEUmBairro_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""regions"":[
        {
            ""name"": ""Triangulo Mineiro"",
            ""cities"": [
                {
                    ""name"": ""Uberlandia"",
                    ""population"": 700001,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Santa Monica"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 13012
                        }
                    ]
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            }
                        }
                    }
                }
            };

            EngineCenso engine = new EngineCenso(new List <CensoPropertyMapper> {
                ModeloACTests.acMapper, ModeloRJTests.rjMapper, ModeloMGTests.mgMapper, ModeloJsonComRegion.jsonMgMapper
            });
            var actualOutput = engine.Process(input);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #8
0
        public void InputNoModeloRJ_ComDuasCidadesEDoisBairrosCadaUma_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<corpo>
    <cidade>
        <nome>Rio de Janeiro</nome>
        <populacao>10345678</populacao>
        <bairros>
            <bairro>
                <nome>Tijuca</nome>
                <regiao>Zona Norte</regiao>
                <populacao>135678</populacao>
            </bairro>
            <bairro>
                <nome>Botafogo</nome>
                <regiao>Zona Sul</regiao>
                <populacao>12456</populacao>
            </bairro>
        </bairros>
    </cidade>
    <cidade>
        <nome>Petrópolis</nome>
        <populacao>300000</populacao>
        <bairros>
            <bairro>
                <nome>Mosela</nome>
                <regiao>Central</regiao>
                <populacao>21234</populacao>
            </bairro>
            <bairro>
                <nome>Retiro</nome>
                <regiao>Central</regiao>
                <populacao>51368</populacao>
            </bairro>
        </bairros>
    </cidade>
</corpo>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Rio de Janeiro",
                        Habitantes = 10345678,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Tijuca",
                                Habitantes = 135678
                            },
                            new Bairro()
                            {
                                Nome       = "Botafogo",
                                Habitantes = 12456
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Petrópolis",
                        Habitantes = 300000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Mosela",
                                Habitantes = 21234
                            },
                            new Bairro()
                            {
                                Nome       = "Retiro",
                                Habitantes = 51368
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, rjMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #9
0
        public void InputNoModeloMG_ComDuasRegioesComDuasCidadesCadaEDoisBairrosCada_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""regions"":[
        {
            ""name"": ""Triangulo Mineiro"",
            ""cities"": [
                {
                    ""name"": ""Uberlandia"",
                    ""population"": 700001,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Santa Monica"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 13012
                        },
                        {
                            ""name"": ""Fundinho"",
                            ""zone"": ""Centro"",
                            ""population"": 19864
                        }
                    ]
                },
                {
                    ""name"": ""Uberaba"",
                    ""population"": 300000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Manoel Mendes"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 16543
                        },
                        {
                            ""name"": ""Santa Maria"",
                            ""zone"": ""Centro"",
                            ""population"": 16845
                        }
                    ]
                }
            ]
        },
        {
            ""name"": ""Zona da Mata Mineira"",
            ""cities"": [
                {
                    ""name"": ""Juiz de Fora"",
                    ""population"": 600000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Costa Carvalho"",
                            ""zone"": ""Região Central"",
                            ""population"": 80654
                        },
                        {
                            ""name"": ""Grajaú"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 25006
                        }
                    ]
                },
                {
                    ""name"": ""Bicas"",
                    ""population"": 14000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Alhadas"",
                            ""zone"": ""Região Central"",
                            ""population"": 2300
                        },
                        {
                            ""name"": ""Edgar Moreira"",
                            ""zone"": ""Zona Oeste"",
                            ""population"": 3201
                        }
                    ]
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            },
                            new Bairro()
                            {
                                Nome       = "Fundinho",
                                Habitantes = 19864
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Uberaba",
                        Habitantes = 300000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Manoel Mendes",
                                Habitantes = 16543
                            },
                            new Bairro()
                            {
                                Nome       = "Santa Maria",
                                Habitantes = 16845
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Juiz de Fora",
                        Habitantes = 600000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Costa Carvalho",
                                Habitantes = 80654
                            },
                            new Bairro()
                            {
                                Nome       = "Grajaú",
                                Habitantes = 25006
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Bicas",
                        Habitantes = 14000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Alhadas",
                                Habitantes = 2300
                            },
                            new Bairro()
                            {
                                Nome       = "Edgar Moreira",
                                Habitantes = 3201
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, jsonMgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #10
0
        public void InputNoModeloMG_ComDuasRegioesComUmaCidadeCadaEUmBairro_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""regions"":[
        {
            ""name"": ""Triangulo Mineiro"",
            ""cities"": [
                {
                    ""name"": ""Uberlandia"",
                    ""population"": 700001,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Santa Monica"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 13012
                        }
                    ]
                }
            ]
        },
        {
            ""name"": ""Zona da Mata Mineira"",
            ""cities"": [
                {
                    ""name"": ""Juiz de Fora"",
                    ""population"": 600000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Costa Carvalho"",
                            ""zone"": ""Região Central"",
                            ""population"": 80654
                        }
                    ]
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Juiz de Fora",
                        Habitantes = 600000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Costa Carvalho",
                                Habitantes = 80654
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, jsonMgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #11
0
        public void InputNoModeloMG_ComDuasRegioesComDuasCidadesCadaEDoisBairrosCada_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<body>
    <region>
        <name>Triangulo Mineiro</name>
        <cities>
            <city>
                <name>Uberlandia</name>
                <population>700001</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Santa Monica</name>
                        <zone>Zona Leste</zone>
                        <population>13012</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Fundinho</name>
                        <zone>Centro</zone>
                        <population>19864</population>
                    </neighborhood>
                </neighborhoods>
            </city>
            <city>
                <name>Uberaba</name>
                <population>300000</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Manoel Mendes</name>
                        <zone>Zona Leste</zone>
                        <population>16543</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Santa Maria</name>
                        <zone>Centro</zone>
                        <population>16845</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
    <region>
        <name>Zona da Mata Mineira</name>
        <cities>
            <city>
                <name>Juiz de Fora</name>
                <population>600000</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Costa Carvalho</name>
                        <zone>Região Central</zone>
                        <population>80654</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Grajaú</name>
                        <zone>Zona Leste</zone>
                        <population>25006</population>
                    </neighborhood>
                </neighborhoods>
            </city>
            <city>
                <name>Bicas</name>
                <population>14000</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Alhadas</name>
                        <zone>Região Central</zone>
                        <population>2300</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Edgar Moreira</name>
                        <zone>Zona Oeste</zone>
                        <population>3201</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
</body>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            },
                            new Bairro()
                            {
                                Nome       = "Fundinho",
                                Habitantes = 19864
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Uberaba",
                        Habitantes = 300000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Manoel Mendes",
                                Habitantes = 16543
                            },
                            new Bairro()
                            {
                                Nome       = "Santa Maria",
                                Habitantes = 16845
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Juiz de Fora",
                        Habitantes = 600000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Costa Carvalho",
                                Habitantes = 80654
                            },
                            new Bairro()
                            {
                                Nome       = "Grajaú",
                                Habitantes = 25006
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Bicas",
                        Habitantes = 14000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Alhadas",
                                Habitantes = 2300
                            },
                            new Bairro()
                            {
                                Nome       = "Edgar Moreira",
                                Habitantes = 3201
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, mgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #12
0
        public void InputNoModeloMG_ComDuasRegioesComUmaCidadeCadaEUmBairro_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<body>
    <region>
        <name>Triangulo Mineiro</name>
        <cities>
            <city>
                <name>Uberlandia</name>
                <population>700001</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Santa Monica</name>
                        <zone>Zona Leste</zone>
                        <population>13012</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
    <region>
        <name>Zona da Mata Mineira</name>
        <cities>
            <city>
                <name>Juiz de Fora</name>
                <population>600000</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Costa Carvalho</name>
                        <zone>Região Central</zone>
                        <population>80654</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
</body>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Juiz de Fora",
                        Habitantes = 600000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Costa Carvalho",
                                Habitantes = 80654
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, mgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #13
0
        public void InputNoModeloMG_ComUmaRegiaoComDuasCidadesEDoisBairrosCada_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"<body>
    <region>
        <name>Triangulo Mineiro</name>
        <cities>
            <city>
                <name>Uberlandia</name>
                <population>700001</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Santa Monica</name>
                        <zone>Zona Leste</zone>
                        <population>13012</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Fundinho</name>
                        <zone>Centro</zone>
                        <population>19864</population>
                    </neighborhood>
                </neighborhoods>
            </city>
            <city>
                <name>Uberaba</name>
                <population>300000</population>
                <neighborhoods>
                    <neighborhood>
                        <name>Manoel Mendes</name>
                        <zone>Zona Leste</zone>
                        <population>16543</population>
                    </neighborhood>
                    <neighborhood>
                        <name>Santa Maria</name>
                        <zone>Centro</zone>
                        <population>16845</population>
                    </neighborhood>
                </neighborhoods>
            </city>
        </cities>
    </region>
</body>";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            },
                            new Bairro()
                            {
                                Nome       = "Fundinho",
                                Habitantes = 19864
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Uberaba",
                        Habitantes = 300000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Manoel Mendes",
                                Habitantes = 16543
                            },
                            new Bairro()
                            {
                                Nome       = "Santa Maria",
                                Habitantes = 16845
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, mgMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #14
0
        public void InputNoModeloMG_ComDuasRegioesComDuasCidadesCadaEUmBairroCada_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""regions"":[
        {
            ""name"": ""Triangulo Mineiro"",
            ""cities"": [
                {
                    ""name"": ""Uberlandia"",
                    ""population"": 700001,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Santa Monica"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 13012
                        }
                    ]
                },
                {
                    ""name"": ""Uberaba"",
                    ""population"": 300000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Manoel Mendes"",
                            ""zone"": ""Zona Leste"",
                            ""population"": 16543
                        }
                    ]
                }
            ]
        },
        {
            ""name"": ""Zona da Mata Mineira"",
            ""cities"": [
                {
                    ""name"": ""Juiz de Fora"",
                    ""population"": 600000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Costa Carvalho"",
                            ""zone"": ""Região Central"",
                            ""population"": 80654
                        }
                    ]
                },
                {
                    ""name"": ""Bicas"",
                    ""population"": 14000,
                    ""neighborhoods"": [
                        {
                            ""name"": ""Alhadas"",
                            ""zone"": ""Região Central"",
                            ""population"": 2300
                        }
                    ]
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Uberlandia",
                        Habitantes = 700001,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Santa Monica",
                                Habitantes = 13012
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Uberaba",
                        Habitantes = 300000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Manoel Mendes",
                                Habitantes = 16543
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Juiz de Fora",
                        Habitantes = 600000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Costa Carvalho",
                                Habitantes = 80654
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Bicas",
                        Habitantes = 14000,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Alhadas",
                                Habitantes = 2300
                            }
                        }
                    }
                }
            };

            EngineCenso engine = new EngineCenso(new List <CensoPropertyMapper> {
                ModeloACTests.acMapper, ModeloRJTests.rjMapper, ModeloMGTests.mgMapper, ModeloJsonComRegion.jsonMgMapper
            });
            var actualOutput = engine.Process(input);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }
Example #15
0
        public void InputNoModeloAC_ComDuasCidadesEDoisBairrosCada_RetornaStringNoPadraoDefinido()
        {
            const string input =
                @"{
    ""cities"":[
        {
            ""name"":""Rio Branco"",
            ""population"":576589,
            ""neighborhoods"":[
                {
                    ""name"":""Habitasa"",
                    ""population"":7503
                },
                {
                    ""name"":""Areial"",
                    ""population"":5310
                }
            ]
        },
        {
            ""name"":""Epitaciolândia"",
            ""population"":13434,
            ""neighborhoods"":[
                {
                    ""name"":""Beira Rio"",
                    ""population"":1230
                },
                {
                    ""name"":""Cetel"",
                    ""population"":3157
                }
            ]
        }
    ]
}";

            CensoOutput expectedOutput = new CensoOutput()
            {
                Result = new List <Result>()
                {
                    new Result()
                    {
                        Cidade     = "Rio Branco",
                        Habitantes = 576589,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Habitasa",
                                Habitantes = 7503
                            },
                            new Bairro()
                            {
                                Nome       = "Areial",
                                Habitantes = 5310
                            }
                        }
                    },
                    new Result()
                    {
                        Cidade     = "Epitaciolândia",
                        Habitantes = 13434,
                        Bairros    = new List <Bairro>()
                        {
                            new Bairro()
                            {
                                Nome       = "Beira Rio",
                                Habitantes = 1230
                            },
                            new Bairro()
                            {
                                Nome       = "Cetel",
                                Habitantes = 3157
                            }
                        }
                    }
                }
            };

            EngineCenso engine       = new EngineCenso();
            var         actualOutput = engine.Process(input, acMapper);

            Assert.AreEqual(JsonConvert.SerializeObject(expectedOutput), JsonConvert.SerializeObject(actualOutput));
        }