Sha256: 5e19a6e0f0d42f36ad7e8a4d2f8846047e65cb22c82ddcf92a7eda9a07c69e46

Contents?: true

Size: 923 Bytes

Versions: 4

Compression:

Stored size: 923 Bytes

Contents

module Warden
  module GitHub
    module Rails
      module TestHelpers
        class MockUser < User
          attr_reader :memberships

          def initialize(*args)
            super
            @memberships = { team: [], org: [] }
          end

          def stub_membership(args)
            args.each do |type, values|
              values = Array(values)
              values.map!(&:to_i) if type == :team
              memberships.fetch(type).concat(values)
            end
          end

          def team_member?(id)
            memberships[:team].include?(id)
          end

          def organization_member?(id)
            memberships[:org].include?(id)
          end

          def marshal_dump
            [memberships, super]
          end

          def marshal_load(data)
            @memberships, super_data = data
            super(super_data)
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
warden-github-rails-1.2.2 lib/warden/github/rails/test_helpers/mock_user.rb
warden-github-rails-1.2.1 lib/warden/github/rails/test_helpers/mock_user.rb
warden-github-rails-1.2.0 lib/warden/github/rails/test_helpers/mock_user.rb
warden-github-rails-1.1.2 lib/warden/github/rails/test_helpers/mock_user.rb