public void SeCriarDataTableNaoDevePermitirValoresDuplicados() { var dicionario = new Dicionario(typeof(ObjetoDeTestes)); var tabela = DataTableBuilder.CriarDataTable(dicionario); var registro = tabela.NewRow(); registro["Codigo"] = 1; registro["Nome"] = "ABC"; registro["Duplo"] = 123.56; registro["Decimal"] = 234.67M; registro["Logico"] = true; registro["DataHora"] = DateTime.Now; tabela.Rows.Add(registro); var novoRegistro = tabela.NewRow(); novoRegistro["Codigo"] = 1; novoRegistro["Nome"] = "ABC"; novoRegistro["Duplo"] = 123.56; novoRegistro["Decimal"] = 234.67M; novoRegistro["Logico"] = true; novoRegistro["DataHora"] = DateTime.Now; Action incluir = () => tabela.Rows.Add(novoRegistro); incluir .Should().Throw <ConstraintException>(); }
public void SeCriarDataTableDoObjetoNaoDeveGerarErro() { var dicionario = new Dicionario(typeof(ObjetoDeTestes)); Action criar = () => DataTableBuilder.CriarDataTable(dicionario); criar .Should().NotThrow(); }
public DataTable ConsultarTabelaDoBancoDeDadosVirtual(Type tipo, string nomeTabela = null) { var dicionario = DicionarioCache.Consultar(tipo); var nome = nomeTabela ?? dicionario.Nome; if (!BancoDeDadosVirtual.Tables.Contains(nome)) { var tabela = DataTableBuilder.CriarDataTable(dicionario); tabela.TableName = nome; BancoDeDadosVirtual.Tables.Add(tabela); } return(BancoDeDadosVirtual.Tables[nome]); }
private void CriarNovoRepositorio(string nome, Type tipo) { var tipoRepositorio = typeof(RepositorioFake <>); var repositorioGenerico = tipoRepositorio.MakeGenericType(tipo); var tipoPersistencia = typeof(PersistenciaFake <>); var persistenciaGenerica = tipoPersistencia.MakeGenericType(tipo); var dicionario = DicionarioCache.Consultar(tipo); var tabela = BancoDeDadosVirtual.Tables[tipo.Name] ?? DataTableBuilder.CriarDataTable(dicionario); if (!BancoDeDadosVirtual.Tables.Contains(tabela.TableName)) { BancoDeDadosVirtual.Tables.Add(tabela); } var persistencia = Activator.CreateInstance(persistenciaGenerica, dicionario); var repositorio = Activator.CreateInstance(repositorioGenerico, this, persistencia, tabela); Repositorios.Add(nome, repositorio); }
public void SeCriarDataTableDeveGerarUmDataTableComEstruturaEsperada() { var dicionario = new Dicionario(typeof(ObjetoDeTestes)); var tabela = DataTableBuilder.CriarDataTable(dicionario); tabela .Should() .NotBeNull(); tabela.Columns .Should() .HaveCount(10, "devem existir 10 colunas!"); ValidarColuna(tabela.Columns[0], nome: "Codigo", tipo: typeof(int), permiteNulo: false); ValidarColuna(tabela.Columns[1], nome: "CodigoNulo", tipo: typeof(int), permiteNulo: true); ValidarColuna(tabela.Columns[2], nome: "Nome", tipo: typeof(string), permiteNulo: false, tamanhoMaximo: 50); ValidarColuna(tabela.Columns[3], nome: "Duplo", tipo: typeof(double), permiteNulo: false); ValidarColuna(tabela.Columns[4], nome: "DuploNulo", tipo: typeof(double), permiteNulo: true); ValidarColuna(tabela.Columns[5], nome: "Decimal", tipo: typeof(decimal), permiteNulo: false); ValidarColuna(tabela.Columns[6], nome: "DecimalNulo", tipo: typeof(decimal), permiteNulo: true); ValidarColuna(tabela.Columns[7], nome: "Logico", tipo: typeof(bool), permiteNulo: false); ValidarColuna(tabela.Columns[8], nome: "DataHora", tipo: typeof(DateTime), permiteNulo: false); ValidarColuna(tabela.Columns[9], nome: "DataHoraNulo", tipo: typeof(DateTime), permiteNulo: true); }
public void SeConverterItemEmDataRowDeveGerarUmDataRowEsperado() { var dicionario = new Dicionario(typeof(ObjetoDeTestes)); var tabela = DataTableBuilder.CriarDataTable(dicionario); var agora = DateTime.Now; var objeto = new ObjetoDeTestes() { Codigo = 1, CodigoNulo = 2, Nome = "ABC", Duplo = 123.56, DuploNulo = 123.5, Decimal = 234.67M, DecimalNulo = 234.6M, Logico = true, DataHora = agora, DataHoraNulo = agora.AddDays(1) }; var registro = DataTableBuilder.ConverterItemEmDataRow(tabela, objeto); registro.RowState .Should() .Be(DataRowState.Detached); registro["Codigo"] .Should() .Be(1); registro["CodigoNulo"] .Should() .Be(2); registro["Nome"] .Should() .Be("ABC"); registro["Duplo"] .Should() .Be(123.56); registro["DuploNulo"] .Should() .Be(123.5); registro["Decimal"] .Should() .Be(234.67M); registro["DecimalNulo"] .Should() .Be(234.6M); registro["Logico"] .Should() .Be(true); registro["DataHora"] .Should() .Be(agora); registro["DataHoraNulo"] .Should() .Be(agora.AddDays(1)); }
private DataTable CriarTabelaDoObjetoDeTestes() { var dicionario = new Dicionario(typeof(ObjetoDeTestes)); return(DataTableBuilder.CriarDataTable(dicionario)); }