Skip to content

Commit

Permalink
Moved support files into seperate support folder, and cleaned up the …
Browse files Browse the repository at this point in the history
…main RSpec file.
  • Loading branch information
xertres committed Jun 25, 2011
1 parent a22a2dc commit 4964095
Show file tree
Hide file tree
Showing 16 changed files with 169 additions and 179 deletions.
1 change: 0 additions & 1 deletion spec/assiociations_ldap_adapter_spec.rb
@@ -1,4 +1,3 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'

describe DataMapper::Adapters::LdapAdapter do
Expand Down
1 change: 0 additions & 1 deletion spec/authentication_ldap_adapter_spec.rb
@@ -1,4 +1,3 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'

describe DataMapper.repository(:ldap).adapter do
Expand Down
1 change: 0 additions & 1 deletion spec/ldap_adapter_spec.rb
@@ -1,4 +1,3 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'
require 'ldap/transactions'

Expand Down
7 changes: 1 addition & 6 deletions spec/ldap_array_spec.rb
@@ -1,11 +1,6 @@
$LOAD_PATH << Pathname(__FILE__).dirname.parent.expand_path + 'lib'

require 'ldap/array'
require 'dm-migrations'
require 'dm-sqlite-adapter'
require 'spec_helper'

class A

include DataMapper::Resource

property :id, Serial
Expand Down
1 change: 0 additions & 1 deletion spec/multi_repository_spec.rb
@@ -1,4 +1,3 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'

class Order
Expand Down
27 changes: 0 additions & 27 deletions spec/multi_value_attributes_spec.rb
@@ -1,32 +1,5 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'

class TestContact
include DataMapper::Resource

property :id, Serial, :field => "uidNumber"
property :login, String, :field => "uid", :unique_index => true
property :hashed_password, String, :field => "userPassword", :lazy => true
property :name, String, :field => "cn"
property :mail, ::Ldap::LdapArray

dn_prefix { |contact| "uid=#{contact.login}"}

treebase "ou=people"

ldap_properties do |contact|
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
properties[:sn] = "#{contact.name.sub(/.*\ /, "")}"
properties[:givenname] = "#{contact.name.sub(/\ .*/, "")}"
properties[:homedirectory] = "/home/#{contact.login}"
properties
end

def password=(password)
attribute_set(:hashed_password, Ldap::Digest.ssha(password, "--#{Time.now}--#{login}--")) if password
end
end

describe DataMapper.repository(:ldap).adapter.class do

describe 'LdapArray' do
Expand Down
2 changes: 0 additions & 2 deletions spec/performance_spec.rb.omit
@@ -1,6 +1,4 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'
require 'contact'

require 'dm-core/version'
p DataMapper::VERSION
Expand Down
3 changes: 1 addition & 2 deletions spec/sorting_spec.rb
@@ -1,4 +1,3 @@
$LOAD_PATH << File.dirname(__FILE__)
require 'spec_helper'

describe DataMapper.repository(:ldap).adapter do
Expand Down Expand Up @@ -58,4 +57,4 @@
end
end
end
end
end
149 changes: 11 additions & 138 deletions spec/spec_helper.rb
@@ -1,19 +1,18 @@
require 'rubygems'

require 'slf4r/ruby_logger'
Slf4r::LoggerFacade4RubyLogger.level = :warn
#Require main environment
require 'dm-ldap-adapter'

#Require developer depdencies
require 'dm-sqlite-adapter'
require 'dm-migrations'
require 'dm-transactions'
require 'pathname'
$LOAD_PATH << Pathname(__FILE__).dirname.parent.expand_path + 'lib'

print "datamapper version:"
puts DataMapper::VERSION

#Logging needs to be cleaned up...
require 'slf4r/ruby_logger'
Slf4r::LoggerFacade4RubyLogger.level = :warn

require 'ldap_resource'
require 'adapters/ldap_adapter'

DataMapper.setup(:default, 'sqlite3::memory:')
DataMapper.setup(:ldap, {
Expand All @@ -28,136 +27,10 @@

puts "using facade #{(ENV['FACADE'] || :net_ldap).to_sym}"

module DataMapper
module Resource
class State

# a persisted/deleted resource
class Deleted < Persisted
def set(subject, value)
warn 'Deleted resource cannot be modified ' + subject.inspect + ' ' + value.to_s + " " + @resource.inspect
super
end
end
end
end
end
class User
include DataMapper::Resource
property :id, Serial, :field => "uidnumber"
property :login, String, :field => "uid", :unique_index => true
property :hashed_password, String, :field => "userPassword", :writer => :private
property :name, String, :field => "cn"
property :mail, String
property :age, Integer, :field => "postalCode"
property :alive, Boolean, :field => "gecos"

has n, :roles

has n, :group_users

def groups
groups = GroupUser.all(:user_id => login).collect{ |gu| gu.group }

def groups.user=(user)
@user = user
end

groups.user = self

def groups.<<(group)
unless member? group
GroupUser.create(:user_id => @user.login, :group_id => group.id)
super
end
self
end

def groups.delete(group)
gu = GroupUser.first(:user_id => @user.login, :group_id => group.id)
if gu
gu.destroy
super
end
end

groups
end

dn_prefix { |user| "uid=#{user.login}"}

treebase "ou=people"

ldap_properties do |user|
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
properties[:sn] = "#{user.name.sub(/.*\ /, "")}"
properties[:givenname] = "#{user.name.sub(/\ .*/, "")}"
properties[:homedirectory] = "/home/#{user.login}"
properties
end

def password=(password)
salt = "--#{Time.now}--#{login}--"
attribute_set(:hashed_password, Ldap::Digest.ssha(password, salt)) if password
end
end
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each {|f| require f}

class Role
include DataMapper::Resource
property :id, Serial, :field => "gidNumber"
property :name, String, :field => "cn"

dn_prefix { |role| "cn=#{role.name}" }

treebase "ou=groups"

ldap_properties {{:objectclass => "posixGroup"}}

belongs_to :user
end

class Group
include DataMapper::Resource
property :id, Serial, :field => "gidNumber"
property :name, String, :field => "cn"

dn_prefix { |group| "cn=#{group.name}" }

treebase "ou=groups"

ldap_properties {{:objectclass => "posixGroup"}}
end

class GroupUser
include DataMapper::Resource

dn_prefix { |group_user| "cn=#{group_user.group.name}" }

treebase "ou=groups"

multivalue_field :memberUid

ldap_properties do |group_user|
{:cn=>"#{group_user.group.name}", :objectclass => "posixGroup"}
end

property :user_id, String, :key => true, :field => "memberUid"
property :group_id, Integer, :key => true, :field => "gidNumber"

def group
Group.get!(group_id)
end

def group=(group)
group_id = group.id
end
DataMapper.auto_migrate!(:default)

def user
User.get!(user_id)
end

def user=(user)
user_id = user.id
end
end
DataMapper.auto_migrate!(:default)
File renamed without changes.
11 changes: 11 additions & 0 deletions spec/support/group.rb
@@ -0,0 +1,11 @@
class Group
include DataMapper::Resource
property :id, Serial, :field => "gidNumber"
property :name, String, :field => "cn"

dn_prefix { |group| "cn=#{group.name}" }

treebase "ou=groups"

ldap_properties {{:objectclass => "posixGroup"}}
end
32 changes: 32 additions & 0 deletions spec/support/group_user.rb
@@ -0,0 +1,32 @@
class GroupUser
include DataMapper::Resource

dn_prefix { |group_user| "cn=#{group_user.group.name}" }

treebase "ou=groups"

multivalue_field :memberUid

ldap_properties do |group_user|
{:cn=>"#{group_user.group.name}", :objectclass => "posixGroup"}
end

property :user_id, String, :key => true, :field => "memberUid"
property :group_id, Integer, :key => true, :field => "gidNumber"

def group
Group.get!(group_id)
end

def group=(group)
group_id = group.id
end

def user
User.get!(user_id)
end

def user=(user)
user_id = user.id
end
end
16 changes: 16 additions & 0 deletions spec/support/resource_state.rb
@@ -0,0 +1,16 @@
#This needs some documentation.

module DataMapper
module Resource
class State

# a persisted/deleted resource
class Deleted < Persisted
def set(subject, value)
warn 'Deleted resource cannot be modified ' + subject.inspect + ' ' + value.to_s + " " + @resource.inspect
super
end
end
end
end
end
13 changes: 13 additions & 0 deletions spec/support/role.rb
@@ -0,0 +1,13 @@
class Role
include DataMapper::Resource
property :id, Serial, :field => "gidNumber"
property :name, String, :field => "cn"

dn_prefix { |role| "cn=#{role.name}" }

treebase "ou=groups"

ldap_properties {{:objectclass => "posixGroup"}}

belongs_to :user
end
25 changes: 25 additions & 0 deletions spec/support/test_contact.rb
@@ -0,0 +1,25 @@
class TestContact
include DataMapper::Resource

property :id, Serial, :field => "uidNumber"
property :login, String, :field => "uid", :unique_index => true
property :hashed_password, String, :field => "userPassword", :lazy => true
property :name, String, :field => "cn"
property :mail, ::Ldap::LdapArray

dn_prefix { |contact| "uid=#{contact.login}"}

treebase "ou=people"

ldap_properties do |contact|
properties = { :objectclass => ["inetOrgPerson", "posixAccount", "shadowAccount"], :loginshell => "/bin/bash", :gidnumber => "10000" }
properties[:sn] = "#{contact.name.sub(/.*\ /, "")}"
properties[:givenname] = "#{contact.name.sub(/\ .*/, "")}"
properties[:homedirectory] = "/home/#{contact.login}"
properties
end

def password=(password)
attribute_set(:hashed_password, Ldap::Digest.ssha(password, "--#{Time.now}--#{login}--")) if password
end
end

0 comments on commit 4964095

Please sign in to comment.