Skip to content

Commit 5bdec5c

Browse files
committed
Fixing unit tests for null SignalWire zones, added isCall to text message provider to work with primary sms provider fallback.
1 parent 58e7d14 commit 5bdec5c

File tree

4 files changed

+89
-31
lines changed

4 files changed

+89
-31
lines changed

Core/Resgrid.Model/Providers/ITextMessageProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
{
33
public interface ITextMessageProvider
44
{
5-
void SendTextMessage(string number, string message, string departmentNumber, MobileCarriers carrier, int departmentId, bool forceGateway = false);
5+
void SendTextMessage(string number, string message, string departmentNumber, MobileCarriers carrier, int departmentId, bool forceGateway = false, bool isCall = false);
66
}
77
}

Core/Resgrid.Services/SmsService.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ public void SendMessage(Message message, string departmentNumber, int department
4141
string text = HtmlToTextHelper.ConvertHtml(message.Body);
4242
text = StringHelpers.StripHtmlTagsCharArray(text);
4343
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(message.Subject, text),
44-
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true);
44+
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true, false);
4545
}
4646
else if (Carriers.DirectSendCarriers.Contains((MobileCarriers)profile.MobileCarrier))
4747
{
4848
string text = HtmlToTextHelper.ConvertHtml(message.Body);
4949
text = StringHelpers.StripHtmlTagsCharArray(text);
5050
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(message.Subject, text),
51-
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId);
51+
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, false, false);
5252
}
5353
else
5454
{
@@ -135,7 +135,7 @@ public void SendCall(Call call, CallDispatch dispatch, string departmentNumber,
135135
// text = text + " " + call.ShortenedCallUrl;
136136
//}
137137

138-
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true);
138+
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true, true);
139139

140140
if (Config.SystemBehaviorConfig.SendCallsToSmsEmailGatewayAdditionally)
141141
SendCallViaEmailSmsGateway(call, address, profile);
@@ -173,7 +173,7 @@ public void SendCall(Call call, CallDispatch dispatch, string departmentNumber,
173173
// text = text + " " + call.ShortenedCallUrl;
174174
//}
175175

176-
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId);
176+
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, false, true);
177177

178178
if (Config.SystemBehaviorConfig.SendCallsToSmsEmailGatewayAdditionally)
179179
SendCallViaEmailSmsGateway(call, address, profile);
@@ -226,11 +226,11 @@ public void SendTroubleAlert(Unit unit, Call call, string unitAddress, string de
226226

227227
if (Config.SystemBehaviorConfig.DepartmentsToForceSmsGateway.Contains(departmentId))
228228
{
229-
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true);
229+
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true, false);
230230
}
231231
else if (Carriers.DirectSendCarriers.Contains((MobileCarriers)profile.MobileCarrier))
232232
{
233-
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId);
233+
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(call.Name, text), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, false, false);
234234
}
235235
else
236236
{
@@ -262,7 +262,7 @@ public void SendText(string userId, string title, string message, int department
262262
if (Carriers.DirectSendCarriers.Contains((MobileCarriers)profile.MobileCarrier))
263263
{
264264
//string departmentNumber = _departmentSettingsService.GetTextToCallNumberForDepartment(departmentId);
265-
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(title, message), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId);
265+
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), FormatTextForMessage(title, message), departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, false, false);
266266
}
267267
else
268268
{
@@ -297,13 +297,13 @@ public void SendNotification(string userId, int departmentId, string message, st
297297
if (Config.SystemBehaviorConfig.DepartmentsToForceSmsGateway.Contains(departmentId))
298298
{
299299
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), message,
300-
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true);
300+
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, true, false);
301301
}
302302
else if (Carriers.DirectSendCarriers.Contains((MobileCarriers)profile.MobileCarrier))
303303
{
304304
//string departmentNumber = _departmentSettingsService.GetTextToCallNumberForDepartment(departmentId);
305305
_textMessageProvider.SendTextMessage(profile.GetPhoneNumber(), message,
306-
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId);
306+
departmentNumber, (MobileCarriers)profile.MobileCarrier, departmentId, false, false);
307307
}
308308
else
309309
{

Providers/Resgrid.Providers.TextProvider/TextMessageProvider.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class TextMessageProvider : ITextMessageProvider
2424
private static int _maxZone = 4;
2525
private static IEnumerable<AreaCodeCity> _areaCodes;
2626

27-
public void SendTextMessage(string number, string message, string departmentNumber, MobileCarriers carrier, int departmentId, bool forceGateway = false)
27+
public void SendTextMessage(string number, string message, string departmentNumber, MobileCarriers carrier, int departmentId, bool forceGateway = false, bool isCall = false)
2828
{
2929
if (carrier == MobileCarriers.Telstra)
3030
SendTextMessageViaNexmo(number, message, departmentNumber);
@@ -53,7 +53,18 @@ public void SendTextMessage(string number, string message, string departmentNumb
5353
}
5454
else
5555
{
56-
SendTextMessageViaTwillio(number, message, departmentNumber);
56+
if (isCall)
57+
{
58+
SendTextMessageViaTwillio(number, message, departmentNumber);
59+
60+
if (Config.SystemBehaviorConfig.AlsoSendToPrimarySmsProvider)
61+
SendTextMessageViaSignalWire(number, message, departmentNumber);
62+
}
63+
else
64+
{
65+
SendTextMessageViaSignalWire(number, message, departmentNumber);
66+
//SendTextMessageViaTwillio(number, message, departmentNumber);
67+
}
5768
}
5869
}
5970
else
@@ -112,8 +123,12 @@ private bool SendTextMessageViaTwillio(string number, string message, string dep
112123
{
113124
//textMessage = twilio.SendMessage(departmentNumber, number, message);
114125

126+
//messageResource = MessageResource.Create(
127+
// from: new PhoneNumber(departmentNumber),
128+
// to: new PhoneNumber(number),
129+
// body: message);
115130
messageResource = MessageResource.Create(
116-
from: new PhoneNumber(departmentNumber),
131+
from: new PhoneNumber(Config.NumberProviderConfig.TwilioResgridNumber),
117132
to: new PhoneNumber(number),
118133
body: message);
119134

Tests/Resgrid.Tests/Providers/GetSendingPhoneNumberTests.cs

Lines changed: 61 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,50 +38,93 @@ public void should_be_valid_for_null()
3838
[Test]
3939
public void should_be_valid_for_cali()
4040
{
41-
var result = _textMessageProvider.GetSendingPhoneNumber("2135556987");
42-
result.Should().NotBeNullOrEmpty();
43-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[1]);
41+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
42+
{
43+
var result = _textMessageProvider.GetSendingPhoneNumber("2135556987");
44+
result.Should().NotBeNullOrEmpty();
45+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[1]);
46+
}
47+
else
48+
{
49+
true.Should().BeTrue();
50+
}
51+
4452
}
4553

4654
[Test]
4755
public void should_be_valid_for_montana()
4856
{
49-
var result = _textMessageProvider.GetSendingPhoneNumber("4065556987");
50-
result.Should().NotBeNullOrEmpty();
51-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[2]);
57+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
58+
{
59+
var result = _textMessageProvider.GetSendingPhoneNumber("4065556987");
60+
result.Should().NotBeNullOrEmpty();
61+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[2]);
62+
}
63+
else
64+
{
65+
true.Should().BeTrue();
66+
}
5267
}
5368

5469
[Test]
5570
public void should_be_valid_for_illnois()
5671
{
57-
var result = _textMessageProvider.GetSendingPhoneNumber("8475556987");
58-
result.Should().NotBeNullOrEmpty();
59-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[3]);
72+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
73+
{
74+
var result = _textMessageProvider.GetSendingPhoneNumber("8475556987");
75+
result.Should().NotBeNullOrEmpty();
76+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[3]);
77+
}
78+
else
79+
{
80+
true.Should().BeTrue();
81+
}
6082
}
6183

6284
[Test]
6385
public void should_be_valid_for_texas()
6486
{
65-
var result = _textMessageProvider.GetSendingPhoneNumber("5125556987");
66-
result.Should().NotBeNullOrEmpty();
67-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[4]);
87+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
88+
{
89+
var result = _textMessageProvider.GetSendingPhoneNumber("5125556987");
90+
result.Should().NotBeNullOrEmpty();
91+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[4]);
92+
}
93+
else
94+
{
95+
true.Should().BeTrue();
96+
}
6897
}
6998

7099

71100
[Test]
72101
public void should_be_valid_for_maryland()
73102
{
74-
var result = _textMessageProvider.GetSendingPhoneNumber("4105556987");
75-
result.Should().NotBeNullOrEmpty();
76-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[5]);
103+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
104+
{
105+
var result = _textMessageProvider.GetSendingPhoneNumber("4105556987");
106+
result.Should().NotBeNullOrEmpty();
107+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[5]);
108+
}
109+
else
110+
{
111+
true.Should().BeTrue();
112+
}
77113
}
78114

79115
[Test]
80116
public void should_be_valid_for_virginia()
81117
{
82-
var result = _textMessageProvider.GetSendingPhoneNumber("7575556987");
83-
result.Should().NotBeNullOrEmpty();
84-
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[6]);
118+
if (Resgrid.Config.NumberProviderConfig.SignalWireZones.Count > 0)
119+
{
120+
var result = _textMessageProvider.GetSendingPhoneNumber("7575556987");
121+
result.Should().NotBeNullOrEmpty();
122+
result.Should().BeOneOf(Resgrid.Config.NumberProviderConfig.SignalWireZones[6]);
123+
}
124+
else
125+
{
126+
true.Should().BeTrue();
127+
}
85128
}
86129
}
87130
}

0 commit comments

Comments
 (0)