public void SeClonarUmObjetoDeBancoDeveGerarCopiaComEstadoDeObjetoSempreNovo() { var funcionario = new ObjetoDeTestes() { Nome = "João", EstadoEntidade = EstadosEntidade.NaoModificado }; funcionario.EstadoEntidade .Should().Be(EstadosEntidade.NaoModificado); var copia = funcionario.Clone() as ObjetoDeTestes; copia .Should().NotBeNull(); if (copia == null) { return; } copia.EstadoEntidade .Should().Be(EstadosEntidade.Novo); copia.Nome .Should().Be("João"); }
public void SeCadastrarEDepoisAtualizarObjetoDeTestesDeveSerAtualizadoCorretamente() { var adapter = CriarAdapterDoObjetoDeTestes(); var conexao = new Conexao(ConnectionStringHelper.Consultar()); var guid = Guid.NewGuid(); var novoRegistro = new ObjetoDeTestes() { Nome = "Teste(" + guid.ToString() + ")", DataHora = DateTime.Now, Decimal = 123.45M, Duplo = 234.56 }; using (var transacao = conexao.IniciarTransacao()) try { adapter.Salvar(conexao, novoRegistro); transacao.ConfirmarTransacao(); } catch { transacao.CancelarTransacao(); throw; } ValidarExistenciaRegistroTemporario(conexao, guid); var registroExistente = (ObjetoDeTestes)novoRegistro.Clone(); guid = Guid.NewGuid(); registroExistente.Nome = "Novo(" + guid.ToString() + ")"; registroExistente.EstadoEntidade = EstadosEntidade.Modificado; using (var novaTransacao = conexao.IniciarTransacao()) try { adapter.Salvar(conexao, registroExistente); novaTransacao.ConfirmarTransacao(); } catch { novaTransacao.CancelarTransacao(); throw; } ValidarExistenciaRegistroTemporario(conexao, guid); ValidarExclusaoDoRegistroTemporario(conexao, guid); adapter.Dispose(); }