mailroute 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +18 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +87 -0
- data/Guardfile +11 -0
- data/LICENSE.txt +22 -0
- data/README.md +57 -0
- data/Rakefile +42 -0
- data/lib/mailroute.rb +34 -0
- data/lib/mailroute/check_connection.rb +21 -0
- data/lib/mailroute/configuration.rb +24 -0
- data/lib/mailroute/extensions/active_resource/better_connection_error.rb +10 -0
- data/lib/mailroute/extensions/active_resource/formats.rb +19 -0
- data/lib/mailroute/extensions/active_resource/has_many.rb +13 -0
- data/lib/mailroute/extensions/active_resource/has_one.rb +13 -0
- data/lib/mailroute/extensions/active_resource/meta_information.rb +20 -0
- data/lib/mailroute/extensions/active_resource/urls_without_json_extension.rb +29 -0
- data/lib/mailroute/extensions/object.rb +3 -0
- data/lib/mailroute/extensions/relation.rb +59 -0
- data/lib/mailroute/models/admin.rb +21 -0
- data/lib/mailroute/models/base.rb +193 -0
- data/lib/mailroute/models/branding_info.rb +5 -0
- data/lib/mailroute/models/customer.rb +10 -0
- data/lib/mailroute/models/customer_contact.rb +6 -0
- data/lib/mailroute/models/domain.rb +56 -0
- data/lib/mailroute/models/domain_alias.rb +6 -0
- data/lib/mailroute/models/domain_contact.rb +6 -0
- data/lib/mailroute/models/email_account.rb +53 -0
- data/lib/mailroute/models/email_account_contact.rb +6 -0
- data/lib/mailroute/models/mail_server.rb +6 -0
- data/lib/mailroute/models/notification_account_task.rb +24 -0
- data/lib/mailroute/models/notification_domain_task.rb +6 -0
- data/lib/mailroute/models/outbound_server.rb +6 -0
- data/lib/mailroute/models/policy_domain.rb +6 -0
- data/lib/mailroute/models/policy_user.rb +6 -0
- data/lib/mailroute/models/reseller.rb +10 -0
- data/lib/mailroute/models/reseller_contact.rb +6 -0
- data/lib/mailroute/models/wblist.rb +7 -0
- data/lib/mailroute/version.rb +3 -0
- data/mailroute.gemspec +33 -0
- data/spec/lib/check_connection_spec.rb +43 -0
- data/spec/lib/configuration_spec.rb +17 -0
- data/spec/lib/mailroute/models/admin_spec.rb +13 -0
- data/spec/lib/mailroute/models/base_spec.rb +21 -0
- data/spec/lib/mailroute/models/customer_contact_spec.rb +32 -0
- data/spec/lib/mailroute/models/customer_spec.rb +244 -0
- data/spec/lib/mailroute/models/domain_alias_spec.rb +27 -0
- data/spec/lib/mailroute/models/domain_contact_spec.rb +32 -0
- data/spec/lib/mailroute/models/domain_spec.rb +215 -0
- data/spec/lib/mailroute/models/email_account_contact_spec.rb +32 -0
- data/spec/lib/mailroute/models/email_account_spec.rb +123 -0
- data/spec/lib/mailroute/models/mail_server_spec.rb +27 -0
- data/spec/lib/mailroute/models/notification_account_task_spec.rb +36 -0
- data/spec/lib/mailroute/models/notification_domain_task_spec.rb +19 -0
- data/spec/lib/mailroute/models/outbound_server_spec.rb +24 -0
- data/spec/lib/mailroute/models/reseller_contact_spec.rb +32 -0
- data/spec/lib/mailroute/models/reseller_spec.rb +297 -0
- data/spec/lib/mailroute/models/wblist_spec.rb +46 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/support/custom_matchers.rb +5 -0
- data/spec/support/mailroute_configuration_helper.rb +9 -0
- data/spec/vcr_cassettes/Mailroute/_check_connection/when_configured_with_correct_credentials/should_return_true.yml +41 -0
- data/spec/vcr_cassettes/Mailroute/_check_connection/when_configured_with_incorrect_credentials/should_raise_Unauthorized_error.yml +38 -0
- data/spec/vcr_cassettes/Mailroute_Admin/basic_operations/should_perform_basic_read_operations.yml +38 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_admins/should_return_a_list_of_its_admins.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_branding_info/should_return_its_branding_info.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_contacts/should_return_a_list_of_its_contacts.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_admin/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_admin/should_be_in_the_list_of_the_customer_s_admins.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_admin/should_have_an_id.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_contact/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_contact/should_have_a_link_to_the_customer.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_contact/should_save_a_new_contact.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_contact/should_save_the_attributes.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_domain/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_domain/should_have_a_link_to_the_customer.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_domain/should_save_a_new_domain.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_domain/should_save_the_attributes.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_a_reseller_object/should_be_created_with_reseller.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_a_reseller_object/should_have_id.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_referenced_via_id/should_be_created_with_reseller.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_referenced_via_id/should_have_id.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_referenced_via_name/should_be_created_with_reseller.yml +156 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_create_with_reseller/when_reseller_is_referenced_via_name/should_have_id.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_delete_admin/when_deleting_an_existing_admin/should_not_be_in_the_list_of_the_customer_s_admins.yml +152 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_delete_admin/when_deleting_an_existing_admin/should_not_delete_all_admins.yml +152 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_delete_admin/when_trying_to_delete_admin_which_do_not_exist/should_not_fail.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_domains/should_return_a_list_of_its_domains.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_filter/by_name/should_return_cusomers_with_a_given_name.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_filter/by_name__startswith/should_return_cusomers_with_names_starting_with_given_prefix.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_filter/by_reseller/should_return_all_customers_of_the_given_reseller.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_get/id/.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_get/name/.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/_reseller/should_return_the_customer_s_reseller.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Customer/basic_operations/should_perform_basic_read_operations.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/total_count/should_return_number_of_customer_which_matches_search_criteria.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/total_count/should_return_number_of_customer_which_matches_search_criteria3.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Customer/total_count/should_return_total_count_of_customers.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_CustomerContact/CRUD/should_create_read_update_and_delete_customer_contacts.yml +340 -0
- data/spec/vcr_cassettes/Mailroute_Domain/_create/should_have_an_id.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Domain/_create/should_save_all_attributes.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Domain/_domain_aliases/should_return_a_list_of_its_domain_aliases.yml +155 -0
- data/spec/vcr_cassettes/Mailroute_Domain/black_white_list/should_blacklist_and_whitelist_emails.yml +386 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_a_notification_task/should_have_notification_task.yml +249 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_a_policy/should_have_policy.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_aliases/should_list_create_and_delete_domain_aliases.yml +195 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_contacts/should_list_create_and_delete_contacts.yml +379 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_email_accounts/should_be_possible_to_bulk_create_email_accounts.yml +192 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_email_accounts/should_list_and_create_email_accounts.yml +411 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_mail_servers/should_list_create_and_delete_mail_servers.yml +306 -0
- data/spec/vcr_cassettes/Mailroute_Domain/has_many_outbound_servers/should_list_create_and_delete_outbound_servers.yml +306 -0
- data/spec/vcr_cassettes/Mailroute_Domain/move_to_customer/should_move_domain_to_another_customer.yml +230 -0
- data/spec/vcr_cassettes/Mailroute_DomainAlias/should_be_possible_to_create_read_update_and_delete_domain_aliases.yml +532 -0
- data/spec/vcr_cassettes/Mailroute_DomainContact/CRUD/should_create_read_update_and_delete_domain_contacts.yml +340 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_id/should_return_an_account.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain/should_return_an_account.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain_id/should_return_an_account.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_get/by_localpart_and_domain_name/should_return_an_account.yml +171 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/_set_password/should_set_the_password.yml +78 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/black_white_list/should_blacklist_and_whitelist_emails.yml +194 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/has_contact/should_have_contact.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/has_domain/should_have_domain.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/has_notification_task/should_have_notification_task.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/has_policy/should_have_policy.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccount/should_be_possible_to_create_read_update_and_delete_email_accounts.yml +532 -0
- data/spec/vcr_cassettes/Mailroute_EmailAccountContact/CRUD/should_create_read_update_and_delete_email_account_contacts.yml +302 -0
- data/spec/vcr_cassettes/Mailroute_MailServer/should_be_possible_to_create_read_update_and_delete_mail_servers.yml +532 -0
- data/spec/vcr_cassettes/Mailroute_NotificationAccountTask/RU/should_read_and_update_tasks.yml +116 -0
- data/spec/vcr_cassettes/Mailroute_NotificationAccountTask/priorities/should_change_the_priority_of_a_task.yml +344 -0
- data/spec/vcr_cassettes/Mailroute_NotificationDomainTask/RU/should_read_and_update_tasks.yml +116 -0
- data/spec/vcr_cassettes/Mailroute_OutboundServer/CRUD/should_create_read_update_and_delete_outbound_servers.yml +229 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_admins/should_return_a_list_of_its_admins.yml +77 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_all/should_accept_limit_keyword.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_all/should_accept_offset_keyword.yml +75 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_all/should_return_a_list_of_resellers.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_bulk_create/should_create_several_resellers.yml +158 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_contacts/should_return_a_list_of_its_contacts.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create/should_create_a_new_reseller.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_admin/.yml +6718 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_admin/should_be_in_the_list_of_the_reseller_s_admins.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_admin/should_have_an_id.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_admin/should_have_send_welcome_field_.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/address/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/city/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/email/.yml +80 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/should_have_a_link_to_the_reseller.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/should_save_a_new_contact.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_contact/should_save_the_attributes.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/allow_branding/.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/name/.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/should_have_a_link_to_the_reseller.yml +156 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/should_save_a_new_contact.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_create_customer/should_save_the_attributes.yml +118 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_customers/should_return_a_list_of_its_customers.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_delete/should_bulk_delete_a_list_of_resellers.yml +368 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_delete/should_delete_the_reseller.yml +112 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_delete_admin/when_deleting_an_existing_admin/should_not_be_in_the_list_of_the_reseller_s_admins.yml +225 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_delete_admin/when_deleting_an_existing_admin/should_not_delete_all_admins.yml +152 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_delete_admin/when_trying_to_delete_admin_which_do_not_exist/should_not_fail.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_filter/should_return_a_list_of_resellers_which_match_the_filter_query.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_raise_error_if_reseller_not_found.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_return_the_reseller.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_return_the_reseller_if_it_exists.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_return_the_reseller_if_it_present.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_return_the_reseller_if_it_preset.yml +73 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_find/should_set_the_name.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_limit/should_limit_the_number_of_resellers_returned.yml +79 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_list/should_accept_limit_keyword.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_list/should_return_a_list_of_resellers.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_offset/should_return_different_pages.yml +75 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_order_by/ascending_order/should_return_ordered_result.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_order_by/descending_order/should_return_ordered_result.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_save/should_save_the_changes.yml +116 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/_search/should_return_a_list_of_resellers_which_match_the_search_query.yml +41 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/it_should_retrieve_branding_info/branding_info/.yml +75 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/it_should_retrieve_branding_info_/branding_info/.yml +39 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/it_should_retrieve_branding_info_ix_/branding_info/.yml +2605 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/it_should_retrieve_branding_info_x_/branding_info/.yml +37 -0
- data/spec/vcr_cassettes/Mailroute_Reseller/it_should_retrieve_branding_info_xix_/branding_info/.yml +75 -0
- data/spec/vcr_cassettes/Mailroute_ResellerContact/CRUD/should_create_read_update_and_delete_reseller_contacts.yml +340 -0
- data/spec/vcr_cassettes/Mailroute_WBList/WBList/with_domain/should_create_read_and_update_and_delete_wblists.yml +415 -0
- data/spec/vcr_cassettes/Mailroute_WBList/WBList/with_email_account/should_create_read_and_update_and_delete_wblists.yml +267 -0
- data/spec/vcr_cassettes/Valid_Reseller.yml +37 -0
- data/spec/vcr_cassettes/Valid_Reseller_.yml +39 -0
- data/spec/vcr_cassettes/Valid_Reseller_with_Branding_Info.yml +75 -0
- metadata +553 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::NotificationAccountTask, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
describe 'RU' do
|
7
|
+
it 'should read and update tasks' do
|
8
|
+
tasks = Mailroute::NotificationAccountTask.list.filter(:email_account => 22)
|
9
|
+
tasks.should_not be_empty
|
10
|
+
|
11
|
+
task = tasks.first
|
12
|
+
|
13
|
+
task.minute.should == 32
|
14
|
+
task.minute = 31
|
15
|
+
task.save!
|
16
|
+
task.reload.minute.should == 31
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'priorities' do
|
21
|
+
it 'should change the priority of a task' do
|
22
|
+
pending "for some reason PUT request doesn't change the priority of a task"
|
23
|
+
account_task = Mailroute::NotificationAccountTask.get(29)
|
24
|
+
|
25
|
+
account_task.is_active.should == false
|
26
|
+
|
27
|
+
account_task.use_self_notification
|
28
|
+
|
29
|
+
account_task.reload.is_active.should == true
|
30
|
+
|
31
|
+
account_task.use_domain_notification
|
32
|
+
|
33
|
+
account.task.reload.is_active.should == false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::NotificationDomainTask, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
describe 'RU' do
|
7
|
+
it 'should read and update tasks' do
|
8
|
+
tasks = Mailroute::NotificationDomainTask.list.filter(:domain => 4157)
|
9
|
+
tasks.should_not be_empty
|
10
|
+
|
11
|
+
task = tasks.first
|
12
|
+
|
13
|
+
task.hour.should == 9
|
14
|
+
task.hour = 8
|
15
|
+
task.save!
|
16
|
+
task.reload.hour.should == 8
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::OutboundServer, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
describe 'CRUD' do
|
7
|
+
it 'should create, read, update and delete outbound servers' do
|
8
|
+
domain = Mailroute::Domain.get(4555)
|
9
|
+
server = Mailroute::OutboundServer.create(:server => '127.0.0.2', :domain => domain)
|
10
|
+
|
11
|
+
server.id.should be
|
12
|
+
|
13
|
+
server.domain.should == domain
|
14
|
+
server.server.should == '127.0.0.2'
|
15
|
+
|
16
|
+
Mailroute::OutboundServer.list.filter(:domain => 4555).should include server
|
17
|
+
|
18
|
+
Mailroute::OutboundServer.delete(server.id)
|
19
|
+
|
20
|
+
Mailroute::OutboundServer.list.filter(:domain => 4555).should_not include server
|
21
|
+
Mailroute::OutboundServer.list.should_not include server
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::ResellerContact, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
let(:reseller) { Mailroute::Reseller.get(4) }
|
7
|
+
|
8
|
+
describe 'CRUD' do
|
9
|
+
it 'should create, read, update and delete reseller contacts' do
|
10
|
+
contact = Mailroute::ResellerContact.create(:email => 'haskell@example.com', :reseller => reseller)
|
11
|
+
|
12
|
+
contact.id.should be
|
13
|
+
|
14
|
+
contact2 = Mailroute::ResellerContact.get(contact.id)
|
15
|
+
|
16
|
+
contact2.should == contact
|
17
|
+
|
18
|
+
contact2.city = 'Minsk'
|
19
|
+
contact2.save!
|
20
|
+
|
21
|
+
contact2.reseller.should == reseller
|
22
|
+
|
23
|
+
contact.reload.city.should == 'Minsk'
|
24
|
+
|
25
|
+
contact.delete
|
26
|
+
|
27
|
+
expect { contact2.reload }.to raise_error ActiveResource::ResourceNotFound
|
28
|
+
|
29
|
+
reseller.contacts.should_not include contact
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,297 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'awesome_print'
|
3
|
+
|
4
|
+
describe Mailroute::Reseller, :vcr => true do
|
5
|
+
before { configure_mailroute }
|
6
|
+
|
7
|
+
describe '#list' do
|
8
|
+
it 'should return a list of resellers' do
|
9
|
+
resellers = Mailroute::Reseller.list
|
10
|
+
resellers.should have(20).items
|
11
|
+
resellers.should all_be Mailroute::Reseller
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#limit' do
|
16
|
+
it 'should limit the number of resellers returned' do #, :vcr => { :record => :all } do
|
17
|
+
Mailroute::Reseller.list.limit(30).should have(30).items
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#offset' do
|
22
|
+
it 'should return different pages' do
|
23
|
+
resellers__1_to_10 = Mailroute::Reseller.list.limit(10).offset(0)
|
24
|
+
resellers_11_to_20 = Mailroute::Reseller.list.offset(10).limit(10)
|
25
|
+
|
26
|
+
(resellers__1_to_10 & resellers_11_to_20).should be_empty
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#filter' do
|
31
|
+
it 'should return a list of resellers which match the filter query' do
|
32
|
+
resellers = Mailroute::Reseller.filter(:name__startswith => 'd')
|
33
|
+
resellers.should_not be_empty
|
34
|
+
resellers.all?{|r| r.name =~ /^d/ }.should be_true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe '#search' do
|
39
|
+
it 'should return a list of resellers which match the search query' do
|
40
|
+
resellers = Mailroute::Reseller.search('Data')
|
41
|
+
resellers.should_not be_empty
|
42
|
+
resellers.all?{|r| r.name =~ /Data/i }.should be_true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe '#order_by' do
|
47
|
+
context 'ascending order' do
|
48
|
+
it 'should return ordered result' do
|
49
|
+
resellers = Mailroute::Reseller.order_by('name')
|
50
|
+
resellers.should_not be_empty
|
51
|
+
resellers.each_cons(2).all? {|x, y| x.name.upcase <= y.name.upcase }.should be_true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'descending order' do
|
56
|
+
it 'should return ordered result' do
|
57
|
+
resellers = Mailroute::Reseller.order_by('-name')
|
58
|
+
resellers.should_not be_empty
|
59
|
+
resellers.each_cons(2).all? {|x, y| y.name.upcase <= x.name.upcase }.should be_true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe '#find' do
|
65
|
+
it 'should raise error if reseller not found' do
|
66
|
+
expect {
|
67
|
+
Mailroute::Reseller.get(100500)
|
68
|
+
}.to raise_error ActiveResource::ResourceNotFound
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should return the reseller if it exists', :vcr => { :cassette_name => 'Valid Reseller ' } do
|
72
|
+
Mailroute::Reseller.get(175).should be_a Mailroute::Reseller
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'it should get all available attributes', :vcr => { :cassette_name => 'Valid Reseller ' } do
|
76
|
+
subject(:reseller) { Mailroute::Reseller.get(175) }
|
77
|
+
|
78
|
+
its(:absolute_url) { should == '/reseller/175/' }
|
79
|
+
its(:allow_branding) { should == false }
|
80
|
+
its(:allow_customer_branding) { should == false }
|
81
|
+
its(:id) { should == 175 }
|
82
|
+
its(:name) { should == 'b7001333b77359eff8cdf90726eee4fd' }
|
83
|
+
its(:resource_uri) { should == '/api/v1/reseller/175/' }
|
84
|
+
its(:updated_at) { should == 'Sun, 24 Feb 2013 06:03:48 -0800' }
|
85
|
+
its(:created_at) { should == 'Sun, 24 Feb 2013 06:03:48 -0800' }
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context 'it should retrieve branding info', :vcr => { :cassette_name => 'Valid Reseller with Branding Info'} do
|
90
|
+
subject(:reseller) { Mailroute::Reseller.get(205) }
|
91
|
+
|
92
|
+
its(:branding_info) { should be_a Mailroute::BrandingInfo }
|
93
|
+
|
94
|
+
it 'should have branding info which refers to the subject' do
|
95
|
+
reseller.branding_info.reseller.should == reseller
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '#create' do
|
100
|
+
it 'should create a new reseller' do #, :vcr => { :record => :all } do
|
101
|
+
new_reseller = Mailroute::Reseller.create(:name => 'Test Reseller 3')
|
102
|
+
new_reseller.id.should_not be_nil
|
103
|
+
|
104
|
+
Mailroute::Reseller.get(new_reseller.id).name.should == 'Test Reseller 3'
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe '#to_json' do
|
109
|
+
it 'should not include root to json' do
|
110
|
+
Mailroute::Reseller.new(:name => 'a new reseller').to_json.should == {:name => 'a new reseller'}.to_json
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe '.bulk_create' do
|
115
|
+
it 'should create several resellers' do
|
116
|
+
resellers = Mailroute::Reseller.bulk_create(
|
117
|
+
{ :name => 'TERMINATOR 1' },
|
118
|
+
{ :name => 'TERMINATOR 2' },
|
119
|
+
{ :name => 'TERMINATOR 3' }
|
120
|
+
)
|
121
|
+
|
122
|
+
resellers.count.should == 3
|
123
|
+
resellers.all?(&:id).should be_true
|
124
|
+
|
125
|
+
Mailroute::Reseller.filter(:name__startswith => 'TERMINATOR ').should have(3).items
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe '#save' do
|
130
|
+
it 'should save the changes' do
|
131
|
+
reseller = Mailroute::Reseller.get(1382)
|
132
|
+
|
133
|
+
reseller.allow_branding.should be_false
|
134
|
+
reseller.allow_branding = true
|
135
|
+
|
136
|
+
reseller.save
|
137
|
+
|
138
|
+
Mailroute::Reseller.get(1382).allow_branding.should be_true
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
describe '#delete' do
|
143
|
+
it 'should delete the reseller' do
|
144
|
+
reseller = Mailroute::Reseller.get(1382)
|
145
|
+
reseller.delete
|
146
|
+
|
147
|
+
expect {
|
148
|
+
Mailroute::Reseller.get(1382)
|
149
|
+
}.to raise_error ActiveResource::ResourceNotFound
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe '.delete' do
|
154
|
+
it 'should bulk delete a list of resellers' do
|
155
|
+
[1443, 1276, 1277].each do |id|
|
156
|
+
Mailroute::Reseller.get(id).should be
|
157
|
+
end
|
158
|
+
|
159
|
+
Mailroute::Reseller.delete(
|
160
|
+
'1443',
|
161
|
+
1276,
|
162
|
+
Mailroute::Reseller.get(1277)
|
163
|
+
)
|
164
|
+
|
165
|
+
[1443, 1276, 1277].each do |id|
|
166
|
+
expect {
|
167
|
+
Mailroute::Reseller.get(id)
|
168
|
+
}.to raise_error ActiveResource::ResourceNotFound
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
describe '#customers' do
|
174
|
+
it 'should return a list of its customers' do
|
175
|
+
reseller = Mailroute::Reseller.new(:id => 4)
|
176
|
+
|
177
|
+
reseller.customers.should have_at_least(10).items
|
178
|
+
reseller.customers.should all_be Mailroute::Customer
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
describe '#contacts' do
|
183
|
+
it 'should return a list of its contacts' do
|
184
|
+
reseller = Mailroute::Reseller.new(:id => 4)
|
185
|
+
|
186
|
+
reseller.contacts.should have_at_least(1).item
|
187
|
+
reseller.contacts.should all_be Mailroute::ResellerContact
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
describe '#admins' do
|
192
|
+
it 'should return a list of its admins' do
|
193
|
+
reseller = Mailroute::Reseller.new(:id => 2640)
|
194
|
+
|
195
|
+
reseller.admins.should have_at_least(1).item
|
196
|
+
reseller.admins.should all_be Mailroute::Admin
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
describe '#create_contact' do
|
201
|
+
let(:reseller) { Mailroute::Reseller.get(4) }
|
202
|
+
subject(:contact) {
|
203
|
+
reseller.create_contact(
|
204
|
+
:address => '6110 Dale Street NW',
|
205
|
+
:city => 'Ney York',
|
206
|
+
:email => 'john_doe@example.com'
|
207
|
+
)
|
208
|
+
}
|
209
|
+
|
210
|
+
it { should be_a Mailroute::ResellerContact }
|
211
|
+
|
212
|
+
it 'should save a new contact' do
|
213
|
+
Mailroute::ResellerContact.get(contact.id).should be
|
214
|
+
end
|
215
|
+
|
216
|
+
it 'should have a link to the reseller' do
|
217
|
+
contact.reseller.should == reseller
|
218
|
+
end
|
219
|
+
|
220
|
+
its(:address) { should == '6110 Dale Street NW' }
|
221
|
+
its(:city) { should == 'Ney York' }
|
222
|
+
its(:email) { should == 'john_doe@example.com' }
|
223
|
+
|
224
|
+
it 'should save the attributes' do
|
225
|
+
Mailroute::ResellerContact.get(contact.id).email.should == 'john_doe@example.com'
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
describe '#create_admin' do
|
230
|
+
let(:reseller) { Mailroute::Reseller.get(4) }
|
231
|
+
|
232
|
+
subject(:admin) { reseller.create_admin('admin@example.com', true) }
|
233
|
+
|
234
|
+
it { should be_a Mailroute::Admin }
|
235
|
+
|
236
|
+
it 'should have an id' do
|
237
|
+
admin.id.should be
|
238
|
+
end
|
239
|
+
|
240
|
+
it "should be in the list of the reseller's admins" do
|
241
|
+
reseller.admins.should include admin
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
describe '#delete_admin' do
|
246
|
+
let(:reseller) { Mailroute::Reseller.get(4) }
|
247
|
+
|
248
|
+
context 'when deleting an existing admin' do
|
249
|
+
before do
|
250
|
+
reseller.delete_admin('admin@example.com')
|
251
|
+
end
|
252
|
+
|
253
|
+
it "should not be in the list of the reseller's admins" do
|
254
|
+
reseller.admins.map(&:email).should_not include 'admin@example.com'
|
255
|
+
end
|
256
|
+
|
257
|
+
it "should not delete all admins" do
|
258
|
+
reseller.admins.should_not be_empty
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
context 'when trying to delete admin which do not exist' do
|
263
|
+
it 'should not fail' do
|
264
|
+
expect {
|
265
|
+
reseller.delete_admin('i-am-not-an-admin@example.com')
|
266
|
+
}.not_to raise_error
|
267
|
+
end
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
describe '#create_customer' do
|
272
|
+
let(:reseller) { Mailroute::Reseller.get(4) }
|
273
|
+
subject(:customer) {
|
274
|
+
reseller.create_customer(
|
275
|
+
:allow_branding => true,
|
276
|
+
:name => 'John Smith'
|
277
|
+
)
|
278
|
+
}
|
279
|
+
|
280
|
+
it { should be_a Mailroute::Customer }
|
281
|
+
|
282
|
+
it 'should save a new contact' do
|
283
|
+
Mailroute::Customer.get(customer.id).should be
|
284
|
+
end
|
285
|
+
|
286
|
+
it 'should have a link to the reseller' do
|
287
|
+
customer.reseller.should == reseller
|
288
|
+
end
|
289
|
+
|
290
|
+
its(:allow_branding) { should == true }
|
291
|
+
its(:name) { should == 'John Smith' }
|
292
|
+
|
293
|
+
it 'should save the attributes' do
|
294
|
+
Mailroute::Customer.get(customer.id).allow_branding.should == true
|
295
|
+
end
|
296
|
+
end
|
297
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::WBList, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
describe 'WBList' do
|
7
|
+
context 'with domain' do
|
8
|
+
it 'should create read and update and delete wblists' do
|
9
|
+
domain = Mailroute::Domain.get(7)
|
10
|
+
wblist = Mailroute::WBList.create(:email => 'noreply@example.com', :domain => domain.resource_uri, :wb => 'b')
|
11
|
+
|
12
|
+
Mailroute::WBList.list.filter(:wb => 'b', :domain => 7).should include wblist
|
13
|
+
|
14
|
+
|
15
|
+
wblist = Mailroute::WBList.get(wblist.id)
|
16
|
+
wblist.domain.should == domain
|
17
|
+
wblist.email_account.should be_nil
|
18
|
+
wblist.email.should == 'noreply@example.com'
|
19
|
+
wblist.wb.should == 'b'
|
20
|
+
|
21
|
+
wblist.delete
|
22
|
+
|
23
|
+
Mailroute::WBList.list.filter(:domain => 7).should_not include wblist
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with email account' do
|
28
|
+
it 'should create read and update and delete wblists' do
|
29
|
+
email_account = Mailroute::EmailAccount.get(22)
|
30
|
+
wblist = Mailroute::WBList.create(:email => 'reply@example.com', :email_account => email_account, :wb => 'b')
|
31
|
+
|
32
|
+
Mailroute::WBList.list.filter(:wb => 'b', :email_account => 22).should include wblist
|
33
|
+
|
34
|
+
wblist = Mailroute::WBList.get(wblist.id)
|
35
|
+
wblist.email_account.should == email_account
|
36
|
+
wblist.domain.should be_nil
|
37
|
+
wblist.email.should == 'reply@example.com'
|
38
|
+
wblist.wb.should == 'b'
|
39
|
+
|
40
|
+
wblist.delete
|
41
|
+
|
42
|
+
Mailroute::WBList.list.filter(:email_account => 22).should_not include wblist
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|