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,24 @@
|
|
1
|
+
module Mailroute
|
2
|
+
class NotificationAccountTask < Base
|
3
|
+
self.collection_name = 'notification_account_task'
|
4
|
+
has_one :email_account
|
5
|
+
|
6
|
+
def is_active
|
7
|
+
self.priority > domain_task.priority
|
8
|
+
end
|
9
|
+
|
10
|
+
def use_self_notification
|
11
|
+
ap self.priority
|
12
|
+
self.priority = domain_task.priority + 1
|
13
|
+
ap self.priority
|
14
|
+
self.save!
|
15
|
+
ap self.priority
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def domain_task
|
21
|
+
email_account.domain.notification_task
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/mailroute.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mailroute/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "mailroute"
|
8
|
+
spec.version = Mailroute::VERSION
|
9
|
+
spec.authors = ["Viktar Basharymau"]
|
10
|
+
spec.email = ["Viktar.Basharymau@gmail.com"]
|
11
|
+
spec.description = %q{MailRoute API}
|
12
|
+
spec.summary = %q{An API for http://mailroute.net}
|
13
|
+
spec.homepage = "http://github.com/DNNX/mailroute"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency 'rest-client'
|
22
|
+
spec.add_dependency 'json_pure'
|
23
|
+
spec.add_dependency 'activeresource'
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler"
|
26
|
+
spec.add_development_dependency "rake"
|
27
|
+
spec.add_development_dependency "guard-rspec"
|
28
|
+
spec.add_development_dependency "rb-inotify"
|
29
|
+
spec.add_development_dependency "rb-fsevent"
|
30
|
+
spec.add_development_dependency "vcr"
|
31
|
+
spec.add_development_dependency "webmock"
|
32
|
+
spec.add_development_dependency "awesome_print"
|
33
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
def valid_credentials
|
4
|
+
{
|
5
|
+
:username => 'blablablablabla@example.com',
|
6
|
+
:apikey => '5f64xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8262'
|
7
|
+
}
|
8
|
+
end
|
9
|
+
|
10
|
+
def invalid_credentials
|
11
|
+
{
|
12
|
+
:username => 'alien',
|
13
|
+
:apikey => 'blabla'
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
describe Mailroute do
|
18
|
+
describe '#check_connection' do
|
19
|
+
context 'when configured with correct credentials', :vcr => true do
|
20
|
+
|
21
|
+
before do
|
22
|
+
Mailroute.configure(valid_credentials)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should return true' do
|
26
|
+
Mailroute.check_connection.should be_true
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when configured with incorrect credentials', :vcr => true do
|
31
|
+
|
32
|
+
before do
|
33
|
+
Mailroute.configure(invalid_credentials)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should raise Unauthorized error' do
|
37
|
+
expect {
|
38
|
+
Mailroute.check_connection
|
39
|
+
}.to raise_error RestClient::Request::Unauthorized
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute, :focus => true do
|
4
|
+
describe '#configure' do
|
5
|
+
before do
|
6
|
+
Mailroute.configure(:url => 'http://example.com', :username => 'a', :apikey => 'b')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should set Mailroute::Base.site' do
|
10
|
+
Mailroute::Base.site.to_s.should == 'http://example.com'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should set Mailroute::Base Authorization header' do
|
14
|
+
Mailroute::Base.headers['Authorization'].should == "ApiKey a:b"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::Admin, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
context 'basic operations' do
|
7
|
+
it 'should perform basic read operations' do
|
8
|
+
pending 'GET https://admin-dev.mailroute.net/api/v1/admins/ responds with 400 Bad Request'
|
9
|
+
admins = Mailroute::Admin.limit(3).offset(20)
|
10
|
+
admins.count.should == 3
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::Base do
|
4
|
+
it 'should reload site if configuration is changed' do
|
5
|
+
Mailroute.configure(:url => 'http://example.com')
|
6
|
+
my_model = Class.new(Mailroute::Base)
|
7
|
+
my_model.site.to_s.should == 'http://example.com'
|
8
|
+
|
9
|
+
Mailroute.configure(:url => 'http://no.example.com')
|
10
|
+
my_model.site.to_s.should == 'http://no.example.com'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should reload authorization header if configuration is changed' do
|
14
|
+
Mailroute.configure(:username => 'a', :apikey => 'b')
|
15
|
+
my_model = Class.new(Mailroute::Base)
|
16
|
+
my_model.headers['Authorization'].should == 'ApiKey a:b'
|
17
|
+
|
18
|
+
Mailroute.configure(:username => 'c', :apikey => 'd')
|
19
|
+
my_model.headers['Authorization'].should == 'ApiKey c:d'
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::CustomerContact, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
let(:customer) { Mailroute::Customer.get(1300) }
|
7
|
+
|
8
|
+
describe 'CRUD' do
|
9
|
+
it 'should create, read, update and delete customer contacts' do
|
10
|
+
contact = Mailroute::CustomerContact.create(:email => 'haskell@example.com', :customer => customer)
|
11
|
+
|
12
|
+
contact.id.should be
|
13
|
+
|
14
|
+
contact2 = Mailroute::CustomerContact.get(contact.id)
|
15
|
+
|
16
|
+
contact2.should == contact
|
17
|
+
|
18
|
+
contact2.city = 'Minsk'
|
19
|
+
contact2.save!
|
20
|
+
|
21
|
+
contact2.customer.should == customer
|
22
|
+
|
23
|
+
contact.reload.city.should == 'Minsk'
|
24
|
+
|
25
|
+
contact.delete
|
26
|
+
|
27
|
+
expect { contact2.reload }.to raise_error ActiveResource::ResourceNotFound
|
28
|
+
|
29
|
+
customer.contacts.should_not include contact
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,244 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mailroute::Customer, :vcr => true do
|
4
|
+
before { configure_mailroute }
|
5
|
+
|
6
|
+
context 'basic operations' do
|
7
|
+
it 'should perform basic read operations' do
|
8
|
+
customers = Mailroute::Customer.limit(3).offset(20).search(:name => 'e')
|
9
|
+
|
10
|
+
customers.count.should == 3
|
11
|
+
customers.all?{|c| c.name =~ /e/i}.should be_true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context '#create with reseller' do
|
16
|
+
subject(:customer) { Mailroute::Customer.create(:name => 'New Customer', :reseller => reseller) }
|
17
|
+
let(:some_reseller) { Mailroute::Reseller.get(4) }
|
18
|
+
|
19
|
+
context 'when reseller is a reseller object' do
|
20
|
+
let(:reseller) { some_reseller }
|
21
|
+
|
22
|
+
it 'should have id' do
|
23
|
+
customer.id.should_not be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should be created with reseller' do
|
27
|
+
customer.reseller.should == some_reseller
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when reseller is referenced via id' do
|
32
|
+
let(:reseller) { some_reseller.id }
|
33
|
+
|
34
|
+
it 'should have id' do
|
35
|
+
customer.id.should_not be_nil
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should be created with reseller' do
|
39
|
+
customer.reseller.should == some_reseller
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when reseller is referenced via name' do
|
44
|
+
let(:reseller) { some_reseller.name }
|
45
|
+
|
46
|
+
it 'should have id' do
|
47
|
+
customer.id.should_not be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should be created with reseller' do
|
51
|
+
customer.reseller.should == some_reseller
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context '#get' do
|
57
|
+
subject(:customer) { Mailroute::Customer.get(1300) }
|
58
|
+
|
59
|
+
its(:id) { should == 1300 }
|
60
|
+
its(:name) { should == '111testCustomer111cc' }
|
61
|
+
end
|
62
|
+
|
63
|
+
context '#filter' do
|
64
|
+
context 'by name' do
|
65
|
+
it 'should return cusomers with a given name' do
|
66
|
+
customers = Mailroute::Customer.filter(:name => '111testCustomer111cc')
|
67
|
+
customers.should all_be Mailroute::Customer
|
68
|
+
customers.should have(1).item
|
69
|
+
customers.first.id.should == 1300
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'by name__startswith' do
|
74
|
+
it 'should return cusomers with names starting with given prefix' do
|
75
|
+
customers = Mailroute::Customer.filter(:name__startswith => 'A')
|
76
|
+
customers.should_not be_empty
|
77
|
+
customers.should all_be Mailroute::Customer
|
78
|
+
customers.all? { |c| c.name =~ /^A/i }.should be_true
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'by reseller' do
|
83
|
+
it 'should return all customers of the given reseller' do
|
84
|
+
customers = Mailroute::Customer.filter(:reseller => 4)
|
85
|
+
customers.should_not be_empty
|
86
|
+
customers.should have_at_least(5).items
|
87
|
+
customers.should all_be Mailroute::Customer
|
88
|
+
customers.all? { |c| c.attributes[:reseller] =~ /\/4\// }.should be_true
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '#reseller' do
|
94
|
+
it "should return the customer's reseller" do
|
95
|
+
customer = Mailroute::Customer.get(2341)
|
96
|
+
reseller = customer.reseller
|
97
|
+
reseller.should be_a Mailroute::Reseller
|
98
|
+
reseller.id.should == 4
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe '#domains' do
|
103
|
+
it 'should return a list of its domains' do
|
104
|
+
customer = Mailroute::Customer.get(1985)
|
105
|
+
|
106
|
+
customer.domains.should have_at_least(1).item
|
107
|
+
customer.domains.should all_be Mailroute::Domain
|
108
|
+
customer.domains.map(&:id).should include 4157
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe '#contacts' do
|
113
|
+
it 'should return a list of its contacts' do
|
114
|
+
customer = Mailroute::Customer.new(:id => 4)
|
115
|
+
|
116
|
+
customer.contacts.should have_at_least(1).item
|
117
|
+
customer.contacts.should all_be Mailroute::CustomerContact
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe '#admins' do
|
122
|
+
it 'should return a list of its admins' do
|
123
|
+
customer = Mailroute::Customer.new(:id => 4)
|
124
|
+
|
125
|
+
customer.admins.should have_at_least(1).item
|
126
|
+
customer.admins.should all_be Mailroute::Admin
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe '#branding_info' do
|
131
|
+
it 'should return its branding info' do
|
132
|
+
customer = Mailroute::Customer.get(1300)
|
133
|
+
|
134
|
+
customer.branding_info.should be_a Mailroute::BrandingInfo
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe '#create_domain' do
|
139
|
+
let(:customer) { Mailroute::Customer.get(1300) }
|
140
|
+
subject(:domain) {
|
141
|
+
customer.create_domain(
|
142
|
+
:deliveryport => 250,
|
143
|
+
:hold_email => true,
|
144
|
+
:name => 'test.example.com',
|
145
|
+
:outbound_enabled => false,
|
146
|
+
:userlist_complete => false
|
147
|
+
)
|
148
|
+
}
|
149
|
+
|
150
|
+
it { should be_a Mailroute::Domain }
|
151
|
+
|
152
|
+
it 'should save a new domain' do
|
153
|
+
Mailroute::Domain.get(domain.id).should be
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'should have a link to the customer' do
|
157
|
+
domain.customer.should == customer
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'should save the attributes' do
|
161
|
+
Mailroute::Domain.get(domain.id).deliveryport.should == 250
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
describe '#create_contact' do
|
166
|
+
let(:customer) { Mailroute::Customer.get(1300) }
|
167
|
+
subject(:contact) {
|
168
|
+
customer.create_contact(
|
169
|
+
:address => 'Barcelona',
|
170
|
+
:email => 'contact@example.com'
|
171
|
+
)
|
172
|
+
}
|
173
|
+
|
174
|
+
it { should be_a Mailroute::CustomerContact }
|
175
|
+
|
176
|
+
it 'should save a new contact' do
|
177
|
+
Mailroute::CustomerContact.get(contact.id).should be
|
178
|
+
end
|
179
|
+
|
180
|
+
it 'should have a link to the customer' do
|
181
|
+
contact.customer.should == customer
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'should save the attributes' do
|
185
|
+
Mailroute::CustomerContact.get(contact.id).address.should == "Barcelona"
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
describe '#create_admin' do
|
190
|
+
let(:customer) { Mailroute::Customer.get(1300) }
|
191
|
+
|
192
|
+
subject(:admin) { customer.create_admin('admin@example.com', true) }
|
193
|
+
|
194
|
+
it { should be_a Mailroute::Admin }
|
195
|
+
|
196
|
+
it 'should have an id' do
|
197
|
+
admin.id.should be
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should be in the list of the customer's admins" do
|
201
|
+
customer.admins.should include admin
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
describe '#delete_admin' do
|
206
|
+
let(:customer) { Mailroute::Customer.get(1300) }
|
207
|
+
|
208
|
+
context 'when deleting an existing admin' do
|
209
|
+
before do
|
210
|
+
customer.delete_admin('admin@example.com')
|
211
|
+
end
|
212
|
+
|
213
|
+
it "should not be in the list of the customer's admins" do
|
214
|
+
customer.admins.map(&:email).should_not include 'admin@example.com'
|
215
|
+
end
|
216
|
+
|
217
|
+
it "should not delete all admins" do
|
218
|
+
customer.admins.should_not be_empty
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
context 'when trying to delete admin which do not exist' do
|
223
|
+
it 'should not fail' do
|
224
|
+
expect {
|
225
|
+
customer.delete_admin('i-am-not-an-admin@example.com')
|
226
|
+
}.not_to raise_error
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
describe 'total_count' do
|
232
|
+
it 'should return total count of customers' do
|
233
|
+
Mailroute::Customer.total_count.should == 2059
|
234
|
+
end
|
235
|
+
|
236
|
+
it 'should return number of customer which matches search criteria' do
|
237
|
+
Mailroute::Customer.search('e').total_count.should == 1592
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'should return number of customer which matches search criteria3' do
|
241
|
+
Mailroute::Customer.search('xdfasdfsdfg').total_count.should == 0
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|