Sha256: 74081ae59aabaf352ca7ca7b6619953291d9f51cf9b0b263883d51ad6f23ec04

Contents?: true

Size: 987 Bytes

Versions: 2

Compression:

Stored size: 987 Bytes

Contents

require "test_helper"
require "pbbuilder"

class PbbuilderTest < ActiveSupport::TestCase
  test "it makes it possible to create a person" do
    person = Pbbuilder.new(API::Person.new) do |pb|
      pb.name "Hello world"
      pb.friends 1..3 do |number|
        pb.name "Friend ##{number}"
      end
    end.target!
    assert_equal person.name, "Hello world"
    assert_equal person.friends.first.name, "Friend #1"
  end

  test "it can extract fields in a nice way" do
    klass = Struct.new(:name)
    friends = [klass.new("Friend 1"), klass.new("Friend 2")]
    person = Pbbuilder.new(API::Person.new) do |pb|
      pb.name "Hello world"
      pb.friends friends, :name
      pb.best_friend friends[0], :name
    end.target!

    assert_equal person.name, "Hello world"
    assert_equal person.friends.size, 2
    assert_equal person.friends.first.name, "Friend 1"
    assert_equal person.friends.last.name, "Friend 2"
    assert_equal person.best_friend.name, "Friend 1"
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pbbuilder-0.3.0 test/pbbuilder_test.rb
pbbuilder-0.2.1 test/pbbuilder_test.rb