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 FazerOEsperadoQuandoTudoEstiverOk()
        {
            //Arrange
            var repositorio = new Mock<RepositorioGrupos>();
            var mapper = new Mock<FabricaGrupo>();

            var id = Guid.NewGuid();
            var grupoEsperado = new ConstrutorGrupo().Construir();
            var grupoRecebido = new GrupoDto {Id = id, Nome = "Grupo"};

            repositorio.Setup(x => x.BuscarPorId(It.IsAny<Guid>(), It.IsAny<Guid>())).Returns(grupoEsperado);
            repositorio.Setup(x => x.Editar(grupoEsperado));
            mapper.Setup(x => x.Criar(Guid.NewGuid(), grupoRecebido)).Returns(grupoEsperado);

            //Action
            Action acao = () => new ModificadorGrupo(repositorio.Object, mapper.Object).Modificar(Guid.NewGuid(), id.ToString(), grupoRecebido);

            //Asserts
            acao.ShouldNotThrow();
        }