Beispiel #1
0
        public void VerificaValorBanhoFimDeSemanaTest()
        {
            var meuCaninoFeliz = new MeuCaninoFeliz();
            var vaiRex         = new VaiRex();
            var chowChawgas    = new ChowChawgas();

            var dataFimDeSemana   = new DateTime(2020, 07, 18);
            var quantCaesPequenos = 2;
            var quantCaesGrandes  = 1;

            // Action
            // Calcula o valor total dos banhos em cada petshop
            meuCaninoFeliz.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes);
            vaiRex.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes);
            chowChawgas.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes);

            // Verifica qual é o melhor petshop
            var melhorPetshop = Petshop.ComparaValores(meuCaninoFeliz, vaiRex, chowChawgas);

            // Assert
            Assert.AreEqual(96, meuCaninoFeliz.valorTotal);
            Assert.AreEqual(95, vaiRex.valorTotal);
            Assert.AreEqual(105, chowChawgas.valorTotal);

            Assert.AreEqual(melhorPetshop, vaiRex);
        }
Beispiel #2
0
        public ActionResult Get(string dataDoBanho, int caesPequenos, int caesGrandes)
        {
            if (string.IsNullOrEmpty(dataDoBanho))
            {
                return(new JsonResult(new {
                    Response = "Favor informar o dia do banho e a quantidade de caes pequenos e grandes "
                }));
            }

            var data = Convert.ToDateTime(dataDoBanho);

            var vaiRex         = new VaiRex();
            var meuCaninoFeliz = new MeuCaninoFeliz();
            var chowChawgas    = new ChowChawgas();

            // Calcula o valor total do banho
            vaiRex.CalcularValorBanho(data, caesPequenos, caesGrandes);
            meuCaninoFeliz.CalcularValorBanho(data, caesPequenos, caesGrandes);
            chowChawgas.CalcularValorBanho(data, caesPequenos, caesGrandes);

            Petshop melhorPetshop = Petshop.ComparaValores(vaiRex, meuCaninoFeliz, chowChawgas);

            return(new JsonResult(new
            {
                nome = melhorPetshop.nome,
                valorTotal = melhorPetshop.valorTotal,
                distanciaEmKm = melhorPetshop.distanciaEmQuilometros
            }));
        }
Beispiel #3
0
        public void TotalPriceDogBath_Receiving_Weekend_Date()
        {
            // Arrange
            var      vaiRex = new VaiRex(15.0m, 50.0m, 1700);
            DateTime date   = DateTime.Parse("28/07/2019");

            // Act
            PetShopResponseViewModel petShopResponse = vaiRex.GetTotalPrice(4, 5, date);

            // Assert
            Assert.AreEqual(petShopResponse.TotalPriceDogBath, 355);
        }
Beispiel #4
0
        public void TotalPriceDogBath_Receiving_Midweek_Date()
        {
            // Arrange
            var      vaiRex = new VaiRex(15.0m, 50.0m, 1700);
            DateTime date   = DateTime.Parse("03/08/2018");

            // Act
            PetShopResponseViewModel petShopResponse = vaiRex.GetTotalPrice(3, 5, date);

            // Assert
            Assert.AreEqual(petShopResponse.TotalPriceDogBath, 295);
        }
Beispiel #5
0
        static List <IPetShop> GetPetShops(Input input)
        {
            MeuCaninoFeliz meuCaninoFeliz = new MeuCaninoFeliz("Meu Canino Felix", 2000, input);
            VaiRex         vaiRex         = new VaiRex("Vai Rex", 1700, input);
            ChowChawgas    chowChawgas    = new ChowChawgas("Chow Chawgas", 800, input);

            return(new List <IPetShop>
            {
                meuCaninoFeliz,
                vaiRex,
                chowChawgas
            });
        }
        public PetShopResponseViewModel GetBetterPetShop(PetShopInputViewModel petShopInput)
        {
            var petShopResponseList = new List <PetShopResponseViewModel>();
            var vaiRex         = new VaiRex(15.0m, 50.0m, 1700);
            var meuCaninoFeliz = new MeuCaninoFeliz(20.0m, 40.0m, 2000);
            var chowChawGas    = new ChowChawGas(30.0m, 45.0m, 800);

            PetShopResponseViewModel totalPriceVaiRexPetShop = vaiRex.GetTotalPrice(petShopInput.QuantitySmallDogs,
                                                                                    petShopInput.QuantityBigDogs,
                                                                                    petShopInput.DateOfBath);
            PetShopResponseViewModel totalPriceMeuCaninoFelizPetShop = meuCaninoFeliz.GetTotalPrice(petShopInput.QuantitySmallDogs,
                                                                                                    petShopInput.QuantityBigDogs,
                                                                                                    petShopInput.DateOfBath);
            PetShopResponseViewModel totalPriceChowChawGasPetShop = chowChawGas.GetTotalPrice(petShopInput.QuantitySmallDogs,
                                                                                              petShopInput.QuantityBigDogs,
                                                                                              petShopInput.DateOfBath);

            petShopResponseList.Add(totalPriceVaiRexPetShop);
            petShopResponseList.Add(totalPriceMeuCaninoFelizPetShop);
            petShopResponseList.Add(totalPriceChowChawGasPetShop);

            return(petShopResponseList.OrderBy(p => p.TotalPriceDogBath).ThenBy(p => p.DogKennelDistanceMetre).FirstOrDefault());
        }
        public PetShop Get()
        {
            DateTime       data           = new DateTime(2018, 08, 03);
            MeuCaninoFeliz meuCaninoFeliz = new MeuCaninoFeliz(data, 3, 5);
            VaiRex         vaiRex         = new VaiRex(data, 3, 5);
            ChowChawgas    chowChawgas    = new ChowChawgas(data, 3, 5);

            meuCaninoFeliz.GetMeuCaninoFeliz(meuCaninoFeliz);
            vaiRex.GetVaiRex(vaiRex);
            chowChawgas.GetChowChawgas(chowChawgas);

            var totalMeCaninoFeliz = meuCaninoFeliz.ValorCaoGrande + meuCaninoFeliz.ValorCaoPequeno;
            var totalVaiRex        = vaiRex.ValorCaoGrande + vaiRex.ValorCaoPequeno;
            var totalChowChawgas   = chowChawgas.ValorCaoGrande + chowChawgas.ValorCaoPequeno;

            if (totalMeCaninoFeliz < totalVaiRex && totalMeCaninoFeliz < totalChowChawgas)
            {
                PetShop petShop = new PetShop();
                petShop.Nome             = meuCaninoFeliz.Nome;
                petShop.ValorTotalBanhos = meuCaninoFeliz.ValorTotalBanhos;

                _petShop = petShop;
            }

            if (totalVaiRex < totalMeCaninoFeliz && totalVaiRex < totalChowChawgas)
            {
                PetShop petShop = new PetShop();
                petShop.Nome             = vaiRex.Nome;
                petShop.ValorTotalBanhos = vaiRex.ValorTotalBanhos;

                _petShop = petShop;
            }

            if (totalChowChawgas < totalVaiRex && totalChowChawgas < totalVaiRex)
            {
                PetShop petShop = new PetShop();
                petShop.Nome             = chowChawgas.Nome;
                petShop.ValorTotalBanhos = chowChawgas.ValorTotalBanhos;

                _petShop = petShop;
            }

            if (totalMeCaninoFeliz == totalVaiRex && totalMeCaninoFeliz == totalChowChawgas)
            {
                if (meuCaninoFeliz.Distancia < vaiRex.Distancia && meuCaninoFeliz.Distancia < chowChawgas.Distancia)
                {
                    PetShop petShop = new PetShop();
                    petShop.Nome             = meuCaninoFeliz.Nome;
                    petShop.ValorTotalBanhos = meuCaninoFeliz.ValorTotalBanhos;

                    _petShop = petShop;
                }

                if (chowChawgas.Distancia < vaiRex.Distancia && chowChawgas.Distancia < meuCaninoFeliz.Distancia)
                {
                    PetShop petShop = new PetShop();
                    petShop.Nome             = chowChawgas.Nome;
                    petShop.ValorTotalBanhos = chowChawgas.ValorTotalBanhos;

                    _petShop = petShop;
                }

                if (vaiRex.Distancia < meuCaninoFeliz.Distancia && vaiRex.Distancia < chowChawgas.Distancia)
                {
                    PetShop petShop = new PetShop();
                    petShop.Nome             = vaiRex.Nome;
                    petShop.ValorTotalBanhos = vaiRex.ValorTotalBanhos;

                    _petShop = petShop;
                }
            }

            return(_petShop);
        }