public void Alvo_SqliteSalvar_HistoricoMenor() { var alvo = new Alvo(new Site("Infonet"), 5); alvo.RetornoRequisicao = DateTime.Now.ToString(); alvo.Status = "n"; alvo.SqliteSalvar(); }
public void AlvoEquals_False() { var alvo1 = new Alvo(new Site("xxx"), 4); var alvo2 = new Alvo(new Site("yyy"), 4); Assert.AreNotEqual(alvo1, alvo2); }
public void GetAlvoAtualizadoComProxy() { var bsn = new Bsn(); bsn.UrlProxy = "http://inet-se.petrobras.com.br"; var alvo = new Alvo("Infonet", 248534); bsn.Buscar(alvo); }
public void GetAlvoAtualizadoTest_StatusIgualP() { Alvo alvo = new Alvo("Infonet", 1); var alvoAtualizado = buscador.Buscar(alvo); Assert.AreEqual("r", alvoAtualizado.Status); }
public void AlvoEquals_True() { var alvo1 = new Alvo(new Site("xxx"), 4); var alvo2 = new Alvo(new Site("xxx"), 4); Assert.AreEqual(alvo1, alvo2); Assert.IsTrue(alvo1.Equals(alvo2)); Assert.IsTrue(alvo2.Equals(alvo1)); }
public void GetAlvoAtualizadoTest_RetornoRequisicaoConteudoCorreto() { var alvo = new Alvo("Infonet", 246201); var alvoAtual = buscador.Buscar(alvo); Assert.IsTrue(alvoAtual.RetornoRequisicao.Contains( "estacionamento 2 salas cozinha WC varanda")); }
public void Alvo_SqliteSalvar_HistoricoIgual() { var alvo = new Alvo(new Site("Infonet"), 4); alvo.RetornoRequisicao = DateTime.Now.ToString(); alvo.Status = "nn"; alvo.SqliteSalvar(); var alvoDestino = Alvo.SqliteFind("Infonet", 4); Assert.AreEqual(alvo.RetornoRequisicao, alvoDestino.RetornoRequisicao); }
public void GetAlvoAtualizadoTest_RetornoRequisicaoFelizola908() { var alvo = new Alvo("Felizola", 908); var alvoAtual = buscador.Buscar(alvo); //Assert.IsTrue(alvoAtual.RetornoRequisicao.Contains( // "3 SALAS, 2 VARANDAS,")); Assert.IsTrue(alvoAtual.RetornoRequisicao.Contains( "Imovel")); }
/// <summary> /// Pede que o buscador se conecte ao Site de Origem e retorna uma /// versão atualizada do Conteúdo do Alvo /// </summary> /// <param name="alvo"></param> /// <returns></returns> public Alvo Buscar(Alvo alvo) { Buscador buscador = new Buscador(); if (!string.IsNullOrEmpty(UrlProxy)) { buscador.UrlProxy = UrlProxy; } return buscador.Buscar(alvo); }
/// <summary> /// Retorna o Alvo passado com o Anuncio extraido /// </summary> /// <param name="alvo"></param> /// <returns></returns> public Alvo Analisar(Alvo alvo) { var alvoAnalisado = analisador.Analisar(alvo); if (ModoVerboso) { alvoAnalisado.RetornoRequisicao = "...RetornoRequisicao...(Modo verboso)"; alvoAnalisado.LinkVisitado = "...LinkVisitado...(Modo verboso)"; Console.WriteLine(string.Format("Anuncio: '{0}'", alvoAnalisado.Anuncio)); } return alvoAnalisado; }
public void ToCSV() { var alvo = new Alvo(new Site("adsf"), 1); var anuncio = new Anuncio(alvo); anuncio.Area = 123; anuncio.Preco = 456; anuncio.Bairro = "bairro"; anuncio.NumeroQuartos = 4; string strCSV = anuncio.ToCSV(); Assert.AreEqual("\"456\",\"123\",\"bairro\",\"adsf\",\"1\",\"NI\",\"NI\",\"4\"", strCSV); }
public void Alvo_SqliteSalvar_ComAnuncio() { var site = Site.GetSitePorNome("Infonet"); var alvo = new Alvo(site, 3); alvo.LinkVisitado = "http://teste"; alvo.Status = "n"; alvo.UltimaVisita = DateTime.Now; alvo.RetornoRequisicao = "<html/>"; alvo.Anuncio = new Anuncio(alvo); alvo.Anuncio.TipoImovel = TipoImovel.CS; alvo.Anuncio.TipoTransacao = TipoTransacao.VD; alvo.Anuncio.Bairro = "..."; alvo.SqliteSalvar(); }
public void FromCSV_ToCSV_Roundtrip() { var alvoOrigem = new Alvo(new Site("asdf"), 1); var anuncioOrigem = new Anuncio(alvoOrigem); anuncioOrigem.Area = 111; anuncioOrigem.Preco = 222; anuncioOrigem.Bairro = "zzz"; anuncioOrigem.TipoImovel = TipoImovel.AP; anuncioOrigem.TipoTransacao = TipoTransacao.AL; anuncioOrigem.NumeroQuartos = 4; var anuncioDestino = Anuncio.FromCSV(anuncioOrigem.ToCSV()); Assert.AreEqual(anuncioOrigem.Area, anuncioDestino.Area); Assert.AreEqual(anuncioOrigem.Preco, anuncioDestino.Preco); Assert.AreEqual(anuncioOrigem.Bairro, anuncioDestino.Bairro); Assert.AreEqual(anuncioOrigem.TipoImovel, anuncioDestino.TipoImovel); Assert.AreEqual(anuncioOrigem.TipoTransacao, anuncioDestino.TipoTransacao); Assert.AreEqual(anuncioOrigem.NumeroQuartos, anuncioDestino.NumeroQuartos); Assert.IsTrue(anuncioOrigem.Equals(anuncioDestino)); }
public void ParseToCSV_Roundtrip() { var alvoOrigem = new Alvo(siteInfonet, 1); alvoOrigem.HistoricoStatus = "teste"; alvoOrigem.UltimaVisita = new DateTime(2013, 2, 1, 1, 1, 1); alvoOrigem.DuracaoVisita = new TimeSpan(1, 2, 3, 123); alvoOrigem.RetornoRequisicao = "codigo html da página"; alvoOrigem.LinkVisitado = "http://teste.com.br"; alvoOrigem.UltimaExcecao = "OutOfBeerException"; alvoOrigem.Anuncio = new Anuncio(alvoOrigem); alvoOrigem.Anuncio.Area = 111; alvoOrigem.Anuncio.Bairro = "asdfqwer"; alvoOrigem.Anuncio.Preco = 222; alvoOrigem.Anuncio.TipoImovel = TipoImovel.AP; alvoOrigem.Anuncio.TipoTransacao = TipoTransacao.AL; string alvoCSV = alvoOrigem.ToCSV(); var alvoDestino = Alvo.FromCSV(alvoCSV); Assert.AreEqual(alvoOrigem.UltimaVisita, alvoDestino.UltimaVisita); Assert.AreEqual(alvoOrigem.HistoricoStatus, alvoDestino.HistoricoStatus); Assert.AreEqual(alvoOrigem.UltimaVisita, alvoDestino.UltimaVisita); Assert.AreEqual(alvoOrigem.DuracaoVisita, alvoDestino.DuracaoVisita); Assert.AreEqual(alvoOrigem.RetornoRequisicao, alvoDestino.RetornoRequisicao); Assert.AreEqual(alvoOrigem.LinkVisitado, alvoDestino.LinkVisitado); Assert.AreEqual(alvoOrigem.UltimaExcecao, alvoDestino.UltimaExcecao); Assert.IsNotNull(alvoDestino.Anuncio); Assert.AreEqual(alvoOrigem.Anuncio.Area, alvoDestino.Anuncio.Area); Assert.AreEqual(alvoOrigem.Anuncio.Bairro, alvoDestino.Anuncio.Bairro); Assert.AreEqual(alvoOrigem.Anuncio.Preco, alvoDestino.Anuncio.Preco); Assert.AreEqual(alvoOrigem.Anuncio.TipoImovel, alvoDestino.Anuncio.TipoImovel); Assert.AreEqual(alvoOrigem.Anuncio.TipoTransacao, alvoDestino.Anuncio.TipoTransacao); Assert.IsTrue(alvoOrigem.Anuncio.Equals(alvoDestino.Anuncio)); }
/** * Return true when the Page doesn't match any Ignored signature * * @param page * @return */ public bool isValidPage(Alvo page) { foreach (string text in getTextsInIgnoredPages()) { if (page.RetornoRequisicao.Contains(text)) { return false; } } return true; }
public bool isPageNotFound(Alvo page) { return page.RetornoRequisicao.Contains(PageNotFoundSignature); }
/** * returns true if page is a Announcement of site. * * @param page * @return */ public bool isAnnouncement(Alvo page) { if (!isValidPage(page)) { return false; } return page.RetornoRequisicao.Contains(this.AnnoucementeSignature); }
public Anuncio ExtrairAnuncio(Alvo alvo) { try { var novoAnuncio = new Anuncio(alvo); novoAnuncio.Bairro = this.ExtrairCampo(this.RegexBairro, alvo); novoAnuncio.Preco = ObterPreco(alvo); novoAnuncio.NumeroQuartos = this.ExtrairCampoInt(this.RegexNumeroQuartos, alvo); novoAnuncio.Area = ExtrairCampoDecimal(this.RegexArea, alvo); novoAnuncio.TipoImovel = ObterTipoImovel(alvo); novoAnuncio.TipoTransacao = ObterTipoTransacao(alvo); return novoAnuncio; } catch (Exception ex) { throw new Exception(string.Format( "Não foi possível extrair Anuncio do Alvo({0}).", alvo), ex); } }
public void Alvo_SqliteSalvar_Update_Roundtrip() { var site = Site.GetSitePorNome("Infonet"); var alvoOrigem = new Alvo(site, 1); alvoOrigem.LinkVisitado = "http://teste"; alvoOrigem.Status = "n"; alvoOrigem.UltimaVisita = DateTime.Today.AddMinutes(100); alvoOrigem.RetornoRequisicao = "<html/>"; alvoOrigem.UltimaExcecao = "TooManyNerdsException"; alvoOrigem.SqliteSalvar(); var alvoDestino = Alvo.SqliteFind(alvoOrigem.SiteOrigem.Nome, alvoOrigem.Id); Assert.AreEqual(alvoOrigem, alvoDestino); Assert.AreEqual(alvoOrigem.LinkVisitado, alvoDestino.LinkVisitado); Assert.AreEqual(alvoOrigem.Status, alvoDestino.Status); Assert.AreEqual(alvoOrigem.UltimaVisita, alvoDestino.UltimaVisita); Assert.AreEqual(alvoOrigem.RetornoRequisicao, alvoDestino.RetornoRequisicao); Assert.AreEqual(alvoOrigem.UltimaExcecao, alvoDestino.UltimaExcecao); }
public void ParseToCSV_Roundtrip_AnuncioNulo() { var alvoOrigem = new Alvo(siteInfonet, 1); alvoOrigem.HistoricoStatus = "teste"; alvoOrigem.UltimaVisita = new DateTime(2013, 2, 1, 1, 1, 1); alvoOrigem.DuracaoVisita = new TimeSpan(1, 0, 0); alvoOrigem.RetornoRequisicao = "codigo html da página"; alvoOrigem.LinkVisitado = "http://teste.com.br"; string alvoCSV = alvoOrigem.ToCSV(); var alvoDestino = Alvo.FromCSV(alvoCSV); Assert.AreEqual(alvoOrigem.UltimaVisita, alvoDestino.UltimaVisita); Assert.AreEqual(alvoOrigem.HistoricoStatus, alvoDestino.HistoricoStatus); Assert.AreEqual(alvoOrigem.UltimaVisita, alvoDestino.UltimaVisita); Assert.AreEqual(alvoOrigem.DuracaoVisita, alvoDestino.DuracaoVisita); Assert.AreEqual(alvoOrigem.RetornoRequisicao, alvoDestino.RetornoRequisicao); Assert.AreEqual(alvoOrigem.LinkVisitado, alvoDestino.LinkVisitado); }
public void Persistir(Alvo alvo) { alvo.SqliteSalvar(); }
private string ExtrairCampo(string strRegex, Alvo pagina) { return Utils.ExtrairCampoString(strRegex, pagina.RetornoRequisicao); }
private TipoImovel ObterTipoImovel(Alvo alvo) { string tipoImovel = ExtrairCampo(RegexTipoImovel, alvo); if (tipoImovel == null) return TipoImovel.IN; try { switch (tipoImovel.ToUpper()) { case "APARTAMENTOS": case "APARTAMENTO": return TipoImovel.AP; case "CASAS": case "CASA": case "CASA EM CONDOMINIO": return TipoImovel.CS; case "SALA COMERCIAL": return TipoImovel.SC; case "PONTO COMERCIAL": return TipoImovel.PC; default: return TipoImovel.IN; } } catch (Exception ex) { throw new Exception(string.Format("Excecao ocorreu ao tentar buscar a regex #{0}# no Alvo({1},{2})", RegexTipoImovel, alvo.SiteOrigem, alvo.Id), ex); } }
private int ExtrairCampoInt(string strRegex, Alvo pagina) { var campo = Utils.ExtrairCampoString(strRegex, pagina.RetornoRequisicao); if (!string.IsNullOrEmpty(campo)) return Convert.ToInt32(campo); else return -1; }
private decimal ExtrairCampoDecimal(string strRegex, Alvo pagina) { var campo = Utils.ExtrairCampoString(strRegex, pagina.RetornoRequisicao); if (!string.IsNullOrEmpty(campo)) return Convert.ToDecimal(campo); else return -1m; }
public static Alvo FromCSV(string alvoCSV) { var campos = Utils.FromCSV(alvoCSV); if (campos.Length != 9) throw new Exception(string.Format( "A string '{0}' deveria retornar um array de 9 itens. Retornou {1}.", alvoCSV, campos.Length)); Alvo alvo; try { alvo = new Alvo(campos[0], Convert.ToInt32(campos[1])); alvo.HistoricoStatus = campos[2]; alvo.DuracaoVisita = TimeSpan.FromSeconds(Convert.ToDouble(campos[3])); alvo.UltimaVisita = DateTime.Parse(campos[4]); alvo.RetornoRequisicao = campos[5]; alvo.LinkVisitado = campos[6]; alvo.Anuncio = Anuncio.FromCSV(campos[7]); alvo.UltimaExcecao = campos[8]; } catch (Exception ex) { throw new Exception(string.Format("Erro ao parsear a strind '{0}'. Array gerado tem tamanho {1}.", alvoCSV, campos.Length), ex); } return alvo; }
private decimal ObterPreco(Alvo alvo) { string preco = Utils.ExtrairCampoString(this.RegexPreco, alvo.RetornoRequisicao); if (string.IsNullOrEmpty(preco)) return -1; decimal retorno; if (Decimal.TryParse(preco, out retorno)) { return retorno; } else { return 0; } }
public static Alvo Parse(System.Data.DataRow alvoRow) { Alvo retorno = null; var siteOrigem = Site.GetSitePorNome(alvoRow["siteOrigem"].ToString()); var id = Convert.ToInt32(alvoRow["id"]); retorno = new Alvo(siteOrigem, id); retorno.RetornoRequisicao = alvoRow["retornoRequisicao"].ToString(); retorno.LinkVisitado = alvoRow["linkVisitado"].ToString(); retorno.HistoricoStatus = alvoRow["historicoStatus"].ToString(); retorno.UltimaExcecao = alvoRow["ultimaExcecao"].ToString(); var ultimaVisita = alvoRow["ultimaVisita"].ToString(); if (!string.IsNullOrEmpty(ultimaVisita)) retorno.UltimaVisita = Convert.ToDateTime(ultimaVisita); return retorno; }
private TipoTransacao ObterTipoTransacao(Alvo pagina) { string tipoTransacao = ExtrairCampo(RegexTipoTransacao, pagina); if (tipoTransacao == null) return TipoTransacao.IN; switch (tipoTransacao.ToUpper()) { case "ALUGAR": case "ALUGUEL": return TipoTransacao.AL; case "VENDER": case "VENDA": return TipoTransacao.VD; default: return TipoTransacao.IN; } }
public void Anuncio_SqliteSalvar_Insert_Roundtrip() { var alvo = new Alvo("Infonet", 3); var anuncioOrigem = new Anuncio(alvo); anuncioOrigem.NumeroQuartos = 4; anuncioOrigem.Area = 555.55m; anuncioOrigem.TipoImovel = TipoImovel.CS; anuncioOrigem.TipoTransacao = TipoTransacao.VD; anuncioOrigem.Preco = 9.99m; anuncioOrigem.Bairro = "Cirurgia"; anuncioOrigem.SqliteSalvar(); var anuncioDestino = Anuncio.SqliteFind("Infonet", 3); Assert.AreEqual(anuncioOrigem.NumeroQuartos, anuncioDestino.NumeroQuartos); Assert.AreEqual(anuncioOrigem.Area, anuncioDestino.Area); Assert.AreEqual(anuncioOrigem.TipoImovel, anuncioDestino.TipoImovel); Assert.AreEqual(anuncioOrigem.TipoTransacao, anuncioDestino.TipoTransacao); Assert.AreEqual(anuncioOrigem.Preco, anuncioDestino.Preco); Assert.AreEqual(anuncioOrigem.Bairro, anuncioDestino.Bairro); }