private void ValidarItensMistoDoDicionarioNaoMapeados(Dicionario dicionario) { dicionario.ConsultarPorCampo("EstadoEntidade").Should().BeNull(); dicionario.ConsultarPorPropriedade("EstadoEntidade").Should().BeNull(); dicionario.ConsultarPorCampo("AliasFilhos").Should().NotBeNull(); dicionario.ConsultarPorPropriedade("AliasFilhos").Should().NotBeNull(); }
private void ValidarItensDoDicionarioComValidadores(Dicionario dicionario) { var campoCodigo = dicionario.ConsultarPorCampo("Codigo"); campoCodigo.Should().NotBeNull(); campoCodigo.Validacoes.Should().BeNull(); var campoNome = dicionario.ConsultarPorCampo("Nome"); campoNome.Should().NotBeNull(); campoNome.Validacoes.Should().NotBeNull(); campoNome.Validacoes.Count.Should().Be(2); }
public void SeCriarScriptConsultaRelacionamentoDescendenteDeveGerarUmScriptSqlCorretamente() { var queryBuilder = new QueryBuilder(); var dicionarioPai = new Dicionario(typeof(ObjetoDeTestes)); queryBuilder.DefinirTabela(dicionarioPai.Nome); queryBuilder.AdicionarCondicao("Codigo", (int)Operadores.Igual, 1); var scriptConsultaDoPai = queryBuilder.GerarScript(dicionarioPai); var dicionarioFilho = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionarioFilho.ConsultarPorCampo("Pai").Propriedade); var relacionamentoBuilder = new RelacionamentoBuilder(); var relacionamento = new Relacionamento(TiposRelacionamento.Descendente, dicionarioFilho, chaveEstrangeira); relacionamentoBuilder.CriarScriptConsultaRelacionamentoDescendente(relacionamento, scriptConsultaDoPai, dicionarioPai.ConsultarCamposChave()) .Should() .Be("with[d]as(" + "select[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo],[Decimal]," + "[DecimalNulo],[Logico],[DataHora],[DataHoraNulo] " + "from[ObjetoVirtual]" + "where([Codigo]=@_p0) " + ")" + "select[CodigoFilho],[NomeFilho],[CodigoPai]" + "from[ObjetoVirtualFilho][t]" + "where(exists(" + "select top 1 1 " + "from[d]" + "where(t.[CodigoPai]=d.[Codigo])))"); }
public void SeCriarObjetoComChaveComputadaDeveRetornarCampoComputado() { var dicionario = new Dicionario(typeof(ObjetoComChaveComputada)); dicionario.ConsultarPorCampo("Codigo").OpcaoGeracao .Should().Be(Incremento.Calculado); }
public void SeQuestionarPelaPropriedadeRelacinoadaDeUmObjetoQueNaoPossuiUmaDeterminadaChaveDeveRetornarFalso() { var filho = new FilhoDoObjetoDeTestes(); var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho) .Should().BeFalse(); }
public void AplicarChaveAscendente(object[] chaveAscendente, object objeto) { var n = 0; foreach (var campoEstrangeiro in ChaveEstrangeira) { var campo = Dicionario.ConsultarPorCampo(campoEstrangeiro); campo.Propriedade.SetValue(objeto, chaveAscendente[n], null); n++; } }
public void SeDefinirUmaChaveAscendenteDeUmCampoRelacionadoDevePreencherObjetoCorretamente() { var filho = new FilhoDoObjetoDeTestes(); var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.AplicarChaveAscendente(new object[] { 123 }, filho); filho.CodigoPai .Should().Be(123); }
public void SeQuestionarPelaPropriedadeRelacionadaComDeterminadoValorPreenchidoDeveRetornarVerdadeiro() { var filho = new FilhoDoObjetoDeTestes() { CodigoPai = 123 }; var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes)); var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade); var relacionamento = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira); relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho) .Should().BeTrue(); }
public bool PossuiChaveAscendente(object[] chaveAscendente, object objeto) { var n = 0; foreach (var campoEstrangeiro in ChaveEstrangeira) { var campo = Dicionario.ConsultarPorCampo(campoEstrangeiro); var valor = campo.Propriedade.GetValue(objeto, null); if (!Equals(chaveAscendente[n], valor)) { return(false); } n++; } return(n > 0); }