has_emails 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/CHANGELOG +8 -0
  2. data/README +32 -71
  3. data/Rakefile +8 -8
  4. data/app/models/email.rb +7 -79
  5. data/app/models/email_address.rb +32 -110
  6. data/db/migrate/001_create_email_addresses.rb +4 -13
  7. data/lib/has_emails/extensions/action_mailer.rb +106 -0
  8. data/lib/has_emails.rb +50 -77
  9. data/test/app_root/app/models/empty +0 -0
  10. data/test/app_root/config/environment.rb +4 -27
  11. data/test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb +9 -0
  12. data/test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb +9 -0
  13. data/test/factory.rb +48 -0
  14. data/test/functional/has_emails_test.rb +139 -0
  15. data/test/test_helper.rb +5 -68
  16. data/test/unit/action_mailer_test.rb +57 -0
  17. data/test/unit/email_address_test.rb +100 -152
  18. data/test/unit/email_test.rb +26 -86
  19. metadata +78 -87
  20. data/app/mailers/application_mailer.rb +0 -85
  21. data/app/models/email_recipient.rb +0 -78
  22. data/app/models/email_recipient_build_extension.rb +0 -7
  23. data/db/bootstrap/events.yml +0 -4
  24. data/db/bootstrap/states.yml +0 -9
  25. data/db/migrate/002_add_email_specs.rb +0 -18
  26. data/db/migrate/003_add_email_recipient_specs.rb +0 -18
  27. data/test/app_root/app/models/department.rb +0 -2
  28. data/test/app_root/app/models/user.rb +0 -3
  29. data/test/app_root/db/migrate/001_create_users.rb +0 -11
  30. data/test/app_root/db/migrate/002_create_departments.rb +0 -12
  31. data/test/fixtures/departments.yml +0 -9
  32. data/test/fixtures/email_addresses.yml +0 -32
  33. data/test/fixtures/message_recipients.yml +0 -85
  34. data/test/fixtures/messages.yml +0 -52
  35. data/test/fixtures/state_changes.yml +0 -128
  36. data/test/fixtures/users.yml +0 -11
  37. data/test/unit/application_mailer_test.rb +0 -69
  38. data/test/unit/email_recipient_test.rb +0 -79
  39. data/test/unit/has_emails_test.rb +0 -36
  40. data/test/unit/recipient_extension_test.rb +0 -99
@@ -1,79 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class EmailRecipientTest < Test::Unit::TestCase
4
- fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
-
6
- def test_recipient_with_email_address_should_be_valid
7
- assert_valid message_recipients(:bob_to_john)
8
- end
9
-
10
- def test_recipient_with_receiver_spec_should_be_valid
11
- assert_valid message_recipients(:bob_to_random)
12
- end
13
-
14
- def test_recipient_with_email_address_attribute_should_be_valid
15
- assert_valid message_recipients(:bob_to_marketing)
16
- end
17
-
18
- def test_should_require_receiver_spec
19
- assert_invalid message_recipients(:bob_to_random), :receiver_spec, nil
20
- end
21
-
22
- def test_should_require_minimum_length_for_receiver_spec
23
- assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'ab'
24
- assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a@a'
25
- end
26
-
27
- def test_should_require_maximum_length_for_receiver_spec
28
- assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 20
29
- assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 19
30
- end
31
-
32
- def test_should_require_specific_format_for_receiver_spec
33
- assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'aaaaaaaaaa'
34
- assert_valid message_recipients(:bob_to_random), :receiver_spec, 'aaa@aaa.com'
35
- end
36
-
37
- def test_email_getter_should_be_same_as_message_getter
38
- r = message_recipients(:bob_to_john)
39
- assert_equal r.email, r.message
40
- end
41
-
42
- def test_email_setter_should_be_same_as_message_setter
43
- r = message_recipients(:bob_to_john)
44
- r.email = messages(:sent_from_mary)
45
- assert_equal r.email, r.message
46
- end
47
-
48
- def test_email_id_getter_should_be_same_as_message_id_getter
49
- r = message_recipients(:bob_to_john)
50
- assert_equal r.email_id, r.message_id
51
- end
52
-
53
- def test_email_id_setter_should_be_same_as_message_id_setter
54
- r = message_recipients(:bob_to_john)
55
- r.email_id = messages(:sent_from_mary).id
56
- assert_equal r.email_id, r.message_id
57
- end
58
-
59
- def test_receiver_should_be_receiver_spec_if_string_recipient
60
- assert_equal 'random@random.com', message_recipients(:bob_to_random).receiver
61
- end
62
-
63
- def test_receiver_should_be_model_if_not_string_recipient
64
- assert_equal email_addresses(:john), message_recipients(:bob_to_john).receiver
65
- end
66
-
67
- def test_should_set_receiver_spec_if_receiver_is_string
68
- r = EmailRecipient.new
69
- r.receiver = 'test@me.com'
70
- assert_equal 'test@me.com', r.receiver_spec
71
- end
72
-
73
- def test_should_set_receiver_and_receiver_spec_if_receiver_is_not_string
74
- r = EmailRecipient.new
75
- r.receiver = email_addresses(:john)
76
- assert_equal 'john@john.com', r.receiver_spec
77
- assert_equal email_addresses(:john), r.receiver
78
- end
79
- end
@@ -1,36 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class HasEmailsTest < Test::Unit::TestCase
4
- fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
-
6
- def test_should_generate_received_association
7
- assert_equal [messages(:sent_from_bob), messages(:sent_from_mary)], users(:john).received_emails.map(&:email)
8
- end
9
-
10
- def test_should_generate_unsent_association
11
- assert_equal [messages(:unsent_from_bob)], users(:bob).unsent_emails
12
- end
13
-
14
- def test_should_generate_sent_association
15
- assert_equal [messages(:sent_from_bob), messages(:queued_from_bob)], users(:bob).sent_emails
16
- end
17
-
18
- def test_should_generate_inbox
19
- assert_instance_of MessageBox, users(:bob).email_box
20
- end
21
-
22
- def test_inbox_should_contain_received_messages
23
- u = users(:bob)
24
- assert_equal u.received_emails, u.email_box.inbox
25
- end
26
-
27
- def test_inbox_should_contain_unsent_messages
28
- u = users(:bob)
29
- assert_equal u.unsent_emails, u.email_box.unsent
30
- end
31
-
32
- def test_inbox_should_contain_sent_messages
33
- u = users(:bob)
34
- assert_equal u.sent_emails, u.email_box.sent
35
- end
36
- end
@@ -1,99 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- class RecipientExtensionTest < Test::Unit::TestCase
4
- fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
5
-
6
- def setup
7
- @email = messages(:unsent_from_bob)
8
- end
9
-
10
- def test_should_input_string
11
- @email.to << 'test@me.com'
12
- assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
13
- end
14
-
15
- def test_should_input_receiver
16
- @email.to << email_addresses(:bob)
17
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
18
- end
19
-
20
- def test_should_input_message_recipients
21
- @email.to << EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')
22
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
23
- end
24
-
25
- def test_should_push_string
26
- @email.to.push('test@me.com')
27
- assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
28
- end
29
-
30
- def test_should_push_receiver
31
- @email.to.push(email_addresses(:bob))
32
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
33
- end
34
-
35
- def test_should_push_message_recipients
36
- @email.to.push(EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to'))
37
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
38
- end
39
-
40
- def test_should_concat_string
41
- @email.to.concat(['test@me.com'])
42
- assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
43
- end
44
-
45
- def test_should_concat_receiver
46
- @email.to.concat([email_addresses(:bob)])
47
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
48
- end
49
-
50
- def test_should_concat_message_recipients
51
- @email.to.concat([EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')])
52
- assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
53
- end
54
-
55
- def test_should_delete_string
56
- @email.to.delete('john@john.com')
57
- assert_equal [], @email.to_receivers
58
- end
59
-
60
- def test_should_delete_receiver
61
- @email.to.delete(email_addresses(:john))
62
- assert_equal [], @email.to_receivers
63
- end
64
-
65
- def test_should_delete_message_recipients
66
- @email.to.delete(@email.to.first)
67
- assert_equal [], @email.to
68
- end
69
-
70
- def test_should_replace_string
71
- @email.to.replace(['bob@bob.com'])
72
- assert_equal ['bob@bob.com'], @email.to.map(&:email_address).map(&:to_s)
73
- end
74
-
75
- def test_should_replace_receiver
76
- @email.to.replace([email_addresses(:bob)])
77
- assert_equal [email_addresses(:bob)], @email.to_receivers
78
- end
79
-
80
- def test_should_replace_message_recipients
81
- @email.to.replace([])
82
- assert_equal [], @email.to_receivers
83
- end
84
-
85
- def test_should_set_kind_for_to_recipients
86
- @email.to << users(:bob)
87
- assert_equal 'to', @email.to.last.kind
88
- end
89
-
90
- def test_should_set_kind_for_cc_recipients
91
- @email.cc << users(:bob)
92
- assert_equal 'cc', @email.cc.last.kind
93
- end
94
-
95
- def test_should_set_kind_for_bcc_recipients
96
- @email.bcc << users(:bob)
97
- assert_equal 'bcc', @email.bcc.last.kind
98
- end
99
- end