<commit_before>require 'rspec'

require_relative '../src/transacciones'
require_relative '../test/fixture'

describe AdviceTransaccion do

  it 'debe trabajar con copias de los atributos' do

    persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

  end

  it 'debe poder hacer un commit' do

    persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

    persona.commit

    persona.instance_variable_get(:@nombre).should == 'Pepe'
    persona.nombre.should == 'Pepe'

  end

  it 'debe poder hacer un rollback' do
    persona = Persona.new
    persona.nombre = 'Jorge'

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre.should == 'Jorge'

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'

    persona.rollback
    persona.nombre.should == 'Jorge'

  end

  it 'debe modificar solo a un objeto' do

    persona = Persona.new
    otra_persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

    otra_persona.nombre = 'Cacho'
    otra_persona.nombre.should == 'Cacho'
    otra_persona.instance_variable_get(:@nombre).should == 'Cacho'

  end


end<commit_msg>Update transacciones_spec.rb<commit_after>require 'rspec'

require_relative '../src/transacciones'
require_relative '../test/fixture'

describe AdviceTransaccion do

  it 'debe trabajar con copias de los atributos' do

    persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

  end

  it 'debe poder hacer un commit' do

    persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

    persona.commit

    persona.instance_variable_get(:@nombre).should == 'Pepe'
    persona.nombre.should == 'Pepe'

  end

  it 'debe poder hacer un rollback' do
    persona = Persona.new
    persona.nombre = 'Jorge'

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre.should == 'Jorge'

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'

    persona.rollback
    persona.nombre.should == 'Jorge'

  end

  it 'debe modificar solo a un objeto' do

    persona = Persona.new
    otra_persona = Persona.new

    AdviceTransaccion.new(persona).modificar_objecto

    persona.nombre = 'Pepe'
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == nil

    otra_persona.nombre = 'Cacho'
    otra_persona.nombre.should == 'Cacho'
    otra_persona.instance_variable_get(:@nombre).should == 'Cacho'

  end

  it 'debe realizar el autocommit al ejecutar el set del atributo' do

    persona = Persona.new

    advice = AdviceTransaccion.new(persona)
    advice.autocommit = true
    advice.modificar_objecto

    persona.nombre = 'Pepe'
    persona.rollback
    persona.nombre.should == 'Pepe'
    persona.instance_variable_get(:@nombre).should == 'Pepe'

  end

  it 'debe realizar el autorollback al ejecutar el set del atributo y salga por error' do

    persona = Persona.new
    persona.nombre = 'Jorge'

    advice = AdviceTransaccion.new(persona)
    advice.autocommit =true
    advice.modificar_objecto


    persona.nombre = 'Pepe'

    persona.nombre.should == 'Jorge'

  end

end
{'fraction_non_alphanumeric': 0.10534716679968077, 'fraction_numerical': 0.0, 'mean_word_length': 3.4235294117647057, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5186931', 'n_tokens_mistral': 1341, 'n_tokens_neox': 1342, 'n_words': 255}