Sha256: a26e2da3c6f1ffee676fe078f0633befe523845a28dd48e6bc793b7aa4355eca

Contents?: true

Size: 973 Bytes

Versions: 1

Compression:

Stored size: 973 Bytes

Contents

require 'cutest'
require 'shoden'

Model = Class.new(Shoden::Model)

class User < Shoden::Model
  attribute :name
end

test 'model' do
  model = Model.create
  assert_equal model.id.class, Fixnum
end

test 'attributes' do
  user = User.create name: 'Michel'
  assert_equal user.name, 'Michel'
end

test 'update' do
  user = User.create name: 'Cyril'
  id = user.id

  assert_equal user.name, 'Cyril'

  user.name = 'cyx'
  user.save

  assert_equal user.name, 'cyx'
  assert_equal user.id, id

  user.update_attributes(name: 'Cyril')
  assert_equal user.name, 'Cyril'
end

test 'relations' do
  class Tree < Shoden::Model
    attribute   :name
    collection  :sprouts, :Sprout
  end

  class Sprout < Shoden::Model
    attribute :leaves
    reference :tree, :Tree
  end

  tree = Tree.create(name: 'asd')

  assert tree.id
  assert_equal tree.name, 'asd'

  sprout = tree.sprouts.create(leaves: 4)

  assert sprout.is_a?(Sprout)
  assert_equal sprout.tree.id, tree.id
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoden-0.1.0 test/shoden_test.rb