public void OTotalDeProdutosDoMesmoGrupoNaoPodeUltrapassarODefinido()
        {
            IRepositorioDeGrupoDeAlimentos repositorioDeGrupos = new RepositorioDeGrupoDeAlimentos();//poderia ser Mockado
            IServicoDeDieta servicoDieta = new ServicoDeDieta(repositorioDeGrupos);

            decimal metaCalorica            = 200;
            int     totalProdutosMesmoGrupo = 1;

            var combinacoes = servicoDieta.GerarCombinacoesDeAlimentosDeAcordoComAMetaCalorica(metaCalorica, totalProdutosMesmoGrupo);

            Assert.IsTrue(combinacoes.Any());

            foreach (var combinacaoDeAlimentosDeDieta in combinacoes)
            {
                int totalDeElementos = combinacaoDeAlimentosDeDieta.Alimentos.Count();

                var totalDeGruposDistintos = combinacaoDeAlimentosDeDieta
                                             .Alimentos
                                             .GroupBy(x => x.GrupoDeAlimento.Id)
                                             .Select(x => x.Key)
                                             .Count();

                Assert.AreEqual(totalDeElementos, totalDeGruposDistintos);
            }
        }
        public void ACombinacaoDeProdutosNaoPodeUltrapassarAMetaCalorica()
        {
            IRepositorioDeGrupoDeAlimentos repositorioDeGrupos = new RepositorioDeGrupoDeAlimentos();//poderia ser Mockado
            IServicoDeDieta servicoDieta = new ServicoDeDieta(repositorioDeGrupos);

            decimal metaCalorica = 300;

            var combinacoes = servicoDieta.GerarCombinacoesDeAlimentosDeAcordoComAMetaCalorica(metaCalorica, 1);

            Assert.IsTrue(combinacoes.Any());

            foreach (var combinacaoDeAlimentosDeDieta in combinacoes)
            {
                var totalCalorico = combinacaoDeAlimentosDeDieta.Alimentos.Sum(x => x.ValorCalorico);

                Assert.IsTrue(totalCalorico <= metaCalorica);
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            try
            {
                //INICIALIZAÇÃO: PODERIA ESTAR EM UM DI CONTAINER
                IRepositorioDeClientes              repoClientes  = new RepositorioDeClientes();
                IRepositorioDeGrupoDeAlimentos      repoGrupos    = new RepositorioDeGrupoDeAlimentos();
                IRepositorioDeConsultasNutricionais repoConsultas = new RepositorioDeConsultasNutricionais();
                IServicoDeDieta servicoDieta = new ServicoDeDieta(repoGrupos);

                var personalNutriConsole = new PersonalNutriConsole(repoClientes, repoConsultas, servicoDieta);
                personalNutriConsole.Executar();
            }
            catch (Exception e)
            {
                System.Console.WriteLine($"Desculpe, ocorreu um erro inesperado.\n Erro: {e.Message} \n StackTrace: {e.StackTrace}");
                System.Console.ReadKey();
                throw;
            }
        }