Sha256: 0ca965b21d11a6f47f41f329b792a3de78c50530860084a6249b494c0db1afa9

Contents?: true

Size: 817 Bytes

Versions: 3

Compression:

Stored size: 817 Bytes

Contents

require 'test_helper'

class VirtualTest < MiniTest::Spec
  class CreditCardTwin < Disposable::Twin
    include Sync
    property :credit_card_number, virtual: true # no read, no write, it's virtual.
  end

  let (:twin) { CreditCardTwin.new(Object.new) }

  it {
    twin.credit_card_number = "123"

    twin.credit_card_number.must_equal "123"  # this is still readable in the UI.

    twin.sync

    hash = {}
    twin.sync do |nested|
      hash = nested
    end

    hash.must_equal("credit_card_number"=> "123")
  }

  describe "setter should never be called with virtual:true" do
    class Raising < Disposable::Twin
      property :id, virtual: true

      def id=(*)
        raise "i should never be called!"
      end
    end

    it "what" do
      Raising.new(Object.new).id.must_be_nil
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
disposable-0.4.6 test/twin/virtual_test.rb
disposable-0.4.5 test/twin/virtual_test.rb
disposable-0.4.4 test/twin/virtual_test.rb