public void FazerOBasicoCorretamente()
        {
            var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes();
            var repositorio = new RepositorioGrupos(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes);

            Grupo grupo = null;

            try
            {
                var siteId = Guid.NewGuid();
                grupo = new ConstrutorGrupo().NoSite(siteId).Construir();
                repositorio.Inserir(grupo);

                var grupoRecuperado = repositorio.BuscarPorId(siteId, grupo.Id);

                var todosOsGrupos = repositorio.Buscar(siteId);

                grupoRecuperado.Id.Should().Be(grupo.Id);
                grupoRecuperado.Nome.Should().BeEquivalentTo(grupo.Nome);
                todosOsGrupos.Should().NotBeNullOrEmpty();
            }
            finally
            {
                if (grupo != null)
                    repositorio.Remover(grupo.Id);
            }
        }
        public void InserirManutencaoDeUmaParte()
        {
            var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes();
            var repositorio = new RepositorioEquipamentos(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes);
            var servico = new CriadorManutencao(repositorio, new FabricaManutencao());

            Extintor extintor = null;
            try
            {
                var siteId = Guid.NewGuid();
                extintor = new ConstrutorExtintor().NoSite(siteId).Construir();
                repositorio.Inserir(extintor);

                var nomeParteParaManutencao = extintor.ParametrosManutencao.Partes.First().Nome;
                servico.Criar(siteId, extintor.Id.ToString(), new ManutencaoDto { Data = DateTime.Now.ParaUnixTime(), Parte = nomeParteParaManutencao });

                var extintorAposAManutencao = repositorio.BuscarPorId(siteId, extintor.Id);

                extintorAposAManutencao.Manutencoes.Should().HaveCount(1);
                extintorAposAManutencao.Manutencoes.First().Parte.Should().Be(nomeParteParaManutencao);
            }
            finally
            {
                if (extintor != null)
                    repositorio.Remover(extintor.Id);
            }
        }
        public void LidarCorretamenteComHierarquiaDeEquipamentos()
        {
            var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes();
            var repositorio = new RepositorioEquipamentos(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes);

            Extintor extintor = null;
            Mangueira mangueira = null;
            SistemaContraIncendioEmCoifa sistemaContraIncendioEmCoifa = null;
            CentralAlarme centralAlarme = null;

            try
            {
                var siteId = Guid.NewGuid();
                extintor = new ConstrutorExtintor().NoSite(siteId).Construir();
                repositorio.Inserir(extintor);

                mangueira = new ConstrutorMangueira().NoSite(siteId).Construir();
                repositorio.Inserir(mangueira);

                sistemaContraIncendioEmCoifa = new ConstrutorSistemaContraIncendioEmCoifa().NoSite(siteId).Construir();
                repositorio.Inserir(sistemaContraIncendioEmCoifa);

                centralAlarme = new ConstrutorCentralAlarme().NoSite(siteId).Construir();
                repositorio.Inserir(centralAlarme);

                repositorio.BuscarPorId(siteId, extintor.Id).Tipo.Should().Be(TipoEquipamento.Extintor);
                repositorio.BuscarPorId(siteId, mangueira.Id).Tipo.Should().Be(TipoEquipamento.Mangueira);
                repositorio.BuscarPorId(siteId, sistemaContraIncendioEmCoifa.Id).Tipo.Should().Be(TipoEquipamento.SistemaContraIncendioEmCoifa);
                repositorio.BuscarPorId(siteId, centralAlarme.Id).Tipo.Should().Be(TipoEquipamento.CentralAlarme);
            }
            finally
            {
                if (extintor != null)
                    repositorio.Remover(extintor.Id);

                if (mangueira != null)
                    repositorio.Remover(mangueira.Id);

                if (sistemaContraIncendioEmCoifa != null)
                    repositorio.Remover(sistemaContraIncendioEmCoifa.Id);

                if (centralAlarme != null)
                    repositorio.Remover(centralAlarme.Id);
            }
        }
        public void FazerOBasicoCorretamente()
        {
            var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes();
            var repositorio = new RepositorioClientes(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes);

            Cliente cliente = null;

            try
            {
                var siteId = Guid.NewGuid();
                cliente = new ConstrutorCliente().NoSite(siteId).Construir();
                repositorio.Inserir(cliente);

                var clienteRecuperado = repositorio.BuscarPorId(siteId, cliente.Id);

                clienteRecuperado.Id.Should().Be(cliente.Id);
                clienteRecuperado.Nome.Should().BeEquivalentTo(cliente.Nome);
            }
            finally
            {
                if (cliente != null)
                    repositorio.Remover(cliente.Id);
            }
        }