Skip to content

Instantly share code, notes, and snippets.

@Ragmaanir
Created June 5, 2011 01:32
Show Gist options
  • Save Ragmaanir/1008561 to your computer and use it in GitHub Desktop.
Save Ragmaanir/1008561 to your computer and use it in GitHub Desktop.
require "dm_spec"
require 'dm-core'
require 'dm-migrations'
require 'dm-types'
require 'dm-validations'
require 'dm-timestamps'
describe DmSpec do
before(:all) do
DataMapper.setup(:default, 'sqlite::memory:')
class User
include DataMapper::Resource
property :id, Serial
has n, :friendship_requests, :child_key => [:sender_id]
has n, :friendships, :child_key => [:user_id]
end
class Friendship
include DataMapper::Resource
belongs_to :user, 'User', :key => true
belongs_to :friend, 'User', :key => true
belongs_to :request, 'FriendshipRequest'
end
class FriendshipRequest
include DataMapper::Resource
belongs_to :sender, 'User', :key => true
belongs_to :receiver, 'User', :key => true
has 2, :friendships
end
DataMapper.auto_migrate!
end
describe 'User' do
let(:user) { User.create }
describe 'Friendship' do
let(:request){ FriendshipRequest.create(:sender => User.create, :receiver => User.create) }
let(:new_friendship) do
Friendship.new(
:request => request,
:user => request.sender,
:friend => request.receiver)
end
#let(:new_friendship) { Friendship.new(
# :friendship_request_sender_id => request.sender_id,
# :request_sender_id => request.sender_id,
# :friendship_request_receiver_id => request.receiver_id,
# :user => request.sender,
# :friend => request.receiver) }
it 'is valid' do
p new_friendship.valid?
p new_friendship.errors
new_friendship.should be_valid
end
it 'stores request in database' do
new_friendship.save
Friendship.first.request.should == request
end
end
describe 'Requests' do
let(:new_request) { FriendshipRequest.new(:sender => User.create, :receiver => User.create) }
it 'is valid' do
new_request.should be_valid
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment