Sha256: e34fd379df08e2ed804ea1b0d6572637d99f7a092b64204ac0a8569011caa353

Contents?: true

Size: 1.8 KB

Versions: 6

Compression:

Stored size: 1.8 KB

Contents

require "spec_helper"

describe Protobuf::ActiveRecord::Persistence do
  let(:user) { User.new(user_attributes) }
  let(:user_attributes) { { :first_name => "foo", :last_name => "bar", :email => "foo@test.co" } }
  let(:proto_hash) { { :name => "foo bar", :email => "foo@test.co" } }
  let(:proto) { UserMessage.new(proto_hash) }

  describe ".create" do
    it "accepts a protobuf message" do
      expect_any_instance_of(User).to receive(:save)
      User.create(proto)
    end

    it "accepts a hash" do
      expect_any_instance_of(User).to receive(:save)
      User.create(user_attributes)
    end
  end

  describe ".create!" do
    it "accepts a protobuf message" do
      expect_any_instance_of(User).to receive(:save!)
      User.create!(proto)
    end

    it "accepts a hash" do
      expect_any_instance_of(User).to receive(:save!)
      User.create!(user_attributes)
    end
  end

  describe "#assign_attributes" do
    let(:user) { ::User.new }

    it "accepts a protobuf message" do
      user.assign_attributes(proto)
      expect(user.changed?).to be true
    end

    it "accepts a hash" do
      user.assign_attributes(user_attributes)
      expect(user.changed?).to be true
    end
  end

  describe "#update_attributes" do
    it "accepts a protobuf message" do
      expect_any_instance_of(User).to receive(:save)
      user.update_attributes(proto)
    end

    it "accepts a hash" do
      expect_any_instance_of(User).to receive(:save)
      user.update_attributes(user_attributes)
    end
  end

  describe "#update_attributes!" do
    it "accepts a protobuf message" do
      expect_any_instance_of(User).to receive(:save!)
      user.update_attributes!(proto)
    end

    it "accepts a hash" do
      expect_any_instance_of(User).to receive(:save!)
      user.update_attributes!(user_attributes)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
protobuf-activerecord-5.2.0 spec/protobuf/active_record/persistence_spec.rb
protobuf-activerecord-5.1.0 spec/protobuf/active_record/persistence_spec.rb
protobuf-activerecord-5.0.0 spec/protobuf/active_record/persistence_spec.rb
protobuf-activerecord-5.1.0.beta spec/protobuf/active_record/persistence_spec.rb
protobuf-activerecord-5.0.0.beta spec/protobuf/active_record/persistence_spec.rb
protobuf-activerecord-3.6.1 spec/protobuf/active_record/persistence_spec.rb