forked from chicks/sugarcrm
/
test_sugarcrm.rb
120 lines (98 loc) · 3.82 KB
/
test_sugarcrm.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
require 'helper'
class TestSugarCRM < Test::Unit::TestCase
context "A SugarCRM::Base instance" do
should "establish a connection when SugarCRM#connect!" do
SugarCRM.connect!(URL, USER, PASS)
assert SugarCRM.connection.connected?
end
should "establish a connection when Base#establish_connection" do
SugarCRM::Base.establish_connection(URL, USER, PASS)
assert SugarCRM.connection.connected?
end
should "return the module name" do
assert_equal "Users", SugarCRM::User._module.name
end
should "responsd to self#methods" do
assert_instance_of Array, SugarCRM::User.new.methods
end
should "respond to self.connection" do
assert_respond_to SugarCRM::User, :connection
assert_instance_of SugarCRM::Connection, SugarCRM::User.connection
end
should "respond to self.connection.logged_in?" do
assert_respond_to SugarCRM::User.connection, :logged_in?
end
should "respond to self.current_user" do
assert_instance_of SugarCRM::User, SugarCRM.current_user
end
should "respond to self.attributes_from_modules_fields" do
assert_instance_of ActiveSupport::HashWithIndifferentAccess, SugarCRM::User.attributes_from_module_fields
end
should "return an instance of itself when #new" do
assert_instance_of SugarCRM::User, SugarCRM::User.new
end
should "define instance level attributes when #new" do
u = SugarCRM::User.new
assert SugarCRM::User.attribute_methods_generated
end
should "not save a record that is missing required attributes" do
u = SugarCRM::User.new
u.last_name = "Test"
assert !u.save
assert_raise SugarCRM::InvalidRecord do
u.save!
end
end
should "create, modify, and delete a record" do
#SugarCRM.connection.debug = true
u = SugarCRM::User.new
u.email1 = "abc@abc.com"
u.first_name = "Test"
u.last_name = "User"
u.system_generated_password = false
u.user_name = "test_user"
u.status = "Active"
assert_equal "Test", u.modified_attributes[:first_name][:new]
assert u.save!
m = SugarCRM::User.find_by_first_name_and_last_name("Test", "User")
m.title = "Test User"
assert m.save!
assert m.delete
#SugarCRM.connection.debug = false
end
should "support finding first instance (sorted by attribute)" do
account = SugarCRM::Account.first({
:order_by => 'name'
})
assert_instance_of SugarCRM::Account, account
end
should "support searching based on conditions" do
accounts = SugarCRM::Account.all({
:conditions => { :billing_address_postalcode => ["> '70000'", "< '72000'" ] },
:limit => '10',
:order_by => 'billing_address_postalcode'
})
assert_instance_of Array, accounts
assert_instance_of SugarCRM::Account, accounts.first
end
should "return an an instance of itself when sent #find(id)" do
assert_instance_of SugarCRM::User, SugarCRM::User.find(1)
end
should "receive a response containing all fields when sent #get_entry" do
u = SugarCRM::User.find(1)
assert_equal u.user_name, "admin"
end
should "return an email address when sent #email_addresses" do
u = SugarCRM::User.find("seed_sarah_id")
assert_equal "sarah@example.com", u.email_addresses.first.email_address
end
should "return an array of records when sent #find([id1, id2, id3])" do
users = SugarCRM::User.find(["seed_sarah_id", 1])
assert_equal "Administrator", users.last.title
end
should "return an instance of User when sent User#find_by_username" do
u = SugarCRM::User.find_by_user_name("sarah")
assert_equal "sarah@example.com", u.email_addresses.first.email_address
end
end
end