1: <?php
2: namespace tests\integration\barebones\models\messaging;
3:
4: use tests\integration\barebones\BarebonesTestCase;
5: use barebones\models\messaging\MessageModel;
6: use barebones\models\messaging\MessageRecipientTypeModel;
7: use UserModel;
8: use MessagesAccessNewModel;
9:
10: class MessageModelTest extends BarebonesTestCase
11: {
12: public function testSendNewOnly()
13: {
14: $this->setExpectedException('Exception');
15: $message = new MessageModel();
16: $message->setSender(UserModel::AZALEA_ROBOT);
17: $message->msg_subject = "Test";
18: $message->msg_body = "this is a test message";
19: $message->save();
20: }
21:
22: public function testSenderRequired()
23: {
24: $this->setExpectedException('Exception');
25: $message = new MessageModel();
26: $message->msg_subject = "Test";
27: $message->msg_body = "this is a test message";
28: $message->send();
29: }
30:
31: public function testSendToActiveAzaleaUsers()
32: {
33: $message = new MessageModel();
34: $message->setSender(UserModel::AZALEA_ROBOT);
35: $message->msg_subject = "Test";
36: $message->msg_body = "this is a test message";
37:
38:
39: $users = array(
40: MessageRecipientTypeModel::TO => 30274,
41: MessageRecipientTypeModel::CC => 30255,
42: MessageRecipientTypeModel::BCC => 30250,
43: );
44:
45: foreach($users as $mrt_id => $usr_id){
46: $message->addUserRecipients($mrt_id, $usr_id);
47: }
48: $message->send();
49: $this->assertGreaterThan(0, $message->msg_id);
50:
51:
52: foreach($users as $mrt_id => $usr_id){
53: $receivers = MessagesAccessNewModel::query()
54: ->where('mxs_msg_id', '=', $message->msg_id)
55: ->where('mxs_mrt_type', '=', $mrt_id)
56: ->where('mxs_usr_id', '=', $usr_id)
57: ->where('mxs_usr_type', '=', MessagesAccessNewModel::USER_TYPE_AZALEA)
58: ->fetch()
59: ->toArray();
60: $this->assertEquals(count($receivers), 1);
61: }
62:
63: }
64:
65: public function testSendToDisabledAzaleaUsers()
66: {
67: $message = new MessageModel();
68: $message->setSender(UserModel::AZALEA_ROBOT);
69: $message->msg_subject = "Test";
70: $message->msg_body = "this is a test message";
71:
72:
73: $users = array(
74: MessageRecipientTypeModel::TO => 54,
75: MessageRecipientTypeModel::CC => 55,
76: MessageRecipientTypeModel::BCC => 60,
77: );
78:
79: foreach($users as $mrt_id => $usr_id){
80: $message->addUserRecipients($mrt_id, $usr_id);
81: }
82: $message->send();
83: $this->assertGreaterThan(0, $message->msg_id);
84:
85:
86: foreach($users as $mrt_id => $usr_id){
87: $receivers = MessagesAccessNewModel::query()
88: ->where('mxs_msg_id', '=', $message->msg_id)
89: ->where('mxs_mrt_type', '=', $mrt_id)
90: ->where('mxs_usr_id', '=', $usr_id)
91: ->where('mxs_usr_type', '=', MessagesAccessNewModel::USER_TYPE_AZALEA)
92: ->fetch()
93: ->toArray();
94: $this->assertEquals(count($receivers), 0);
95: }
96:
97: }
98:
99: public function testSendDirectMail()
100: {
101: }
102:
103: public function testSendAwayMessage()
104: {
105:
106:
107: return;
108:
109: $message = new MessageModel();
110: $message->setSender(UserModel::AZALEA_ROBOT);
111: $message->msg_subject = "Test";
112: $message->msg_body = "this is a test message";
113:
114:
115: $users = array(
116: MessageRecipientTypeModel::TO => 6461,
117: );
118:
119: foreach($users as $mrt_id => $usr_id){
120: $message->addUserRecipients($mrt_id, $usr_id);
121: }
122: $message->send();
123: $this->assertGreaterThan(0, $message->msg_id);
124:
125:
126: $receivers = MessagesAccessNewModel::query()
127: ->where('mxs_msg_id', '>', $message->msg_id)
128: ->where('mxs_usr_id', '=', UserModel::AZALEA_ROBOT)
129: ->where('mxs_usr_type', '=', MessagesAccessNewModel::USER_TYPE_AZALEA)
130: ->fetch()
131: ->toArray();
132: $this->assertEquals(count($receivers), 1);
133: }
134:
135: }
136: