public bool PetEstaEmUmaDistanciaSegura(PetMonitorModel model, DistanciaSeguraModel configuracaoDistanciaSegura)
        {
            var distanciaPet = CalgularDistanciaEntreCoordenadas(model.CoordenadasGeograficasPet.Latitude,
                                                                 model.CoordenadasGeograficasPet.Longitude,
                                                                 model.CoordenadasGeograficasDono.Latitude,
                                                                 model.CoordenadasGeograficasDono.Longitude);

            return(distanciaPet <= configuracaoDistanciaSegura.Metros);
        }
예제 #2
0
        public bool VerificarPetDistanciaSegura(DistanciaSeguraModel distancia, PetMonitorModel petMonitor)
        {
            var distanciaSegura = _distanciaSeguraService.PetEstaEmUmaDistanciaSegura(petMonitor, distancia);

            if (!distanciaSegura)
            {
                _notificacaoDistanciaSegura.SendMessage(petMonitor);
            }

            return(distanciaSegura);
        }
예제 #3
0
        public void PetDentroDeUmaDistanciaSeguraTheory_False(double latitudePet, double longitudePet, double latitudeDono, double longitudeDono, double distanciaSegura)
        {
            // Arrange
            var distanciaSeguramodel = new DistanciaSeguraModel(distanciaSegura);

            _coordenadasPet  = new CoordenadasGeograficasModel(latitudePet, longitudePet);
            _coordenadasDono = new CoordenadasGeograficasModel(latitudeDono, longitudeDono);

            _petMonitorModel = new PetMonitorModel(_pet, _coordenadasPet, _coordenadasDono);

            // Act
            var petSeguro = _distanciaSeguraService.PetEstaEmUmaDistanciaSegura(_petMonitorModel, distanciaSeguramodel);

            // Assert
            Assert.False(petSeguro);
        }
예제 #4
0
        public void PetNaoEstaDentroDeUmaDistanciaSegura_False()
        {
            // Arrange
            var distanciaSeguramodel = new DistanciaSeguraModel(15);

            _coordenadasPet  = new CoordenadasGeograficasModel(-21.733899, -48.098750);
            _coordenadasDono = new CoordenadasGeograficasModel(-21.733967, -48.098901);

            _petMonitorModel = new PetMonitorModel(_pet, _coordenadasPet, _coordenadasDono);

            // Act
            var petSeguro = _distanciaSeguraService.PetEstaEmUmaDistanciaSegura(_petMonitorModel, distanciaSeguramodel);

            // Assert
            Assert.False(petSeguro);
        }
        public void PetDentroDeUmaDistanciaSeguraTheory_True(double latitudePet, double longitudePet, double latitudeDono, double longitudeDono, double distanciaSegura)
        {
            // Arrange
            var distanciaSeguramodel = new DistanciaSeguraModel(distanciaSegura);

            _coordenadasPet  = new CoordenadasGeograficasModel(latitudePet, longitudePet);
            _coordenadasDono = new CoordenadasGeograficasModel(latitudeDono, longitudeDono);

            _petMonitorModel = new PetMonitorModel(_pet, _coordenadasPet, _coordenadasDono);

            _service = new PetDistanciaSeguraService(_distanciaSeguraService, _notificacaoDistanciaSegura.Object);

            // Act
            var petSeguro = _service.VerificarPetDistanciaSegura(distanciaSeguramodel, _petMonitorModel);

            // Assert
            Assert.True(petSeguro);
            _notificacaoDistanciaSegura.Verify(a => a.SendMessage(It.IsAny <PetMonitorModel>()), Times.Never);
        }
        public void PetNaoEstaDentroDeUmaDistanciaSegura_False()
        {
            // Arrange
            var distanciaSeguramodel = new DistanciaSeguraModel(15);

            _coordenadasPet  = new CoordenadasGeograficasModel(-21.733899, -48.098750);
            _coordenadasDono = new CoordenadasGeograficasModel(-21.733967, -48.098901);

            _petMonitorModel = new PetMonitorModel(_pet, _coordenadasPet, _coordenadasDono);

            _service = new PetDistanciaSeguraService(_distanciaSeguraService, _notificacaoDistanciaSegura.Object);

            // Act
            var petSeguro = _service.VerificarPetDistanciaSegura(distanciaSeguramodel, _petMonitorModel);

            // Assert
            Assert.False(petSeguro);
            _notificacaoDistanciaSegura.Verify(a => a.SendMessage(It.IsAny <PetMonitorModel>()), Times.Once);
        }
        public void SendMessage(PetMonitorModel petModel)
        {
            // todo :  montar mensagem

            // todo  : enviar notificacao sei´lá pra quem
        }