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 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 SeConultarAChaveEstrangeiraDeUmObjetoDeveRetornarOValorEsperado()
        {
            var dicionario = new Dicionario(typeof(FilhoDoObjetoDeTestes));

            var objeto = new FilhoDoObjetoDeTestes()
            {
                CodigoFilho = 123,
                NomeFilho   = "Testes ABC",
                CodigoPai   = 775
            };

            dicionario.ConsultarValoresDaChave(objeto, new[] { "CodigoPai" })
            .Should().BeEquivalentTo(775);
        }
        private static void ValidarFilho(FilhoDoObjetoDeTestes filho, string nome, string nomePai)
        {
            filho.Nome
            .Should()
            .Be(nome);

            filho.Pai
            .Should()
            .NotBeNull();

            filho.Pai.Nome
            .Should()
            .Be(nomePai);
        }
        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();
        }