Skip to content

Commit 1a92299

Browse files
committed
[Feature] - Sendernames
1 parent baa7721 commit 1a92299

File tree

10 files changed

+271
-1
lines changed

10 files changed

+271
-1
lines changed

examples/sendernames/Delete.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using SMSApi.Api;
2+
using smsapi.Api.Response.REST.Exception;
3+
4+
var client = new ClientOAuth("token");
5+
var features = new Features(client);
6+
7+
const string senderToDelete = "sender";
8+
9+
try
10+
{
11+
features.Sendernames()
12+
.Delete(senderToDelete)
13+
.Execute();
14+
15+
//sendername is deleted at this point
16+
}
17+
catch (NotFoundException)
18+
{
19+
Console.WriteLine("Sender not found");
20+
}

examples/sendernames/Get.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using SMSApi.Api;
2+
using smsapi.Api.Response.REST.Exception;
3+
4+
var client = new ClientOAuth("token");
5+
var features = new Features(client);
6+
7+
const string existingSender = "sender";
8+
9+
try
10+
{
11+
var createdSendername = features.Sendernames()
12+
.Get(existingSender)
13+
.Execute();
14+
15+
Console.WriteLine(createdSendername.Sender);
16+
Console.WriteLine(createdSendername.Status);
17+
Console.WriteLine(createdSendername.IsDefault);
18+
Console.WriteLine(createdSendername.CreatedAt);
19+
}
20+
catch (NotFoundException)
21+
{
22+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using SMSApi.Api.Response.Sendernames;
2+
3+
namespace SMSApi.Api.Action.Sendernames;
4+
5+
public sealed class DeleteSendername : Action<DeleteSendernameResult>
6+
{
7+
private string _sender;
8+
9+
public DeleteSendername(string sender)
10+
{
11+
_sender = sender;
12+
}
13+
14+
protected override RequestMethod Method => RequestMethod.DELETE;
15+
16+
protected override ApiType ApiType() => Action.ApiType.Rest;
17+
18+
protected override ActionContentType ContentType => ActionContentType.Json;
19+
20+
protected override string Uri()
21+
{
22+
return $"sms/sendernames/{_sender}";
23+
}
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using SMSApi.Api.Response.Sendernames;
2+
3+
namespace SMSApi.Api.Action.Sendernames;
4+
5+
public sealed class GetSendername : Action<Sendername>
6+
{
7+
private string _sender;
8+
9+
public GetSendername(string sender)
10+
{
11+
_sender = sender;
12+
}
13+
14+
protected override RequestMethod Method => RequestMethod.GET;
15+
16+
protected override ApiType ApiType() => Action.ApiType.Rest;
17+
18+
protected override string Uri()
19+
{
20+
return $"sms/sendernames/{_sender}";
21+
}
22+
}

smsapi/Api/Response/Sendernames/ChangeDefaultSendernameResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
namespace SMSApi.Api.Response.Sendernames;
44

5-
public sealed class ChangeDefaultSendernameResult : IResponseCodeAwareResolver
5+
public sealed class DeleteSendernameResult : IResponseCodeAwareResolver
66
{
77
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
using SMSApi.Api.Response.ResponseResolver;
2+
3+
namespace SMSApi.Api.Response.Sendernames;
4+
5+
public sealed class ChangeDefaultSendernameResult : IResponseCodeAwareResolver
6+
{
7+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using SMSApi.Api;
4+
using SMSApi.Api.Action.Sendernames;
5+
6+
namespace smsapiTests.Unit.Action.Sendernames;
7+
8+
[TestClass]
9+
public class DeleteSendernameRequestTest
10+
{
11+
private readonly SpyProxy _spyProxy = new();
12+
private readonly ProxyAssert _proxyAssert;
13+
14+
public DeleteSendernameRequestTest()
15+
{
16+
_proxyAssert = new ProxyAssert(_spyProxy);
17+
}
18+
19+
[TestMethod]
20+
public void uri_is_valid()
21+
{
22+
var sender = "any sender";
23+
24+
Delete(sender);
25+
26+
var encodedSender = Uri.EscapeDataString(sender);
27+
_proxyAssert.AssertUriEquals($"sms/sendernames/{encodedSender}");
28+
}
29+
30+
[TestMethod]
31+
public void request_method_is_delete()
32+
{
33+
Delete();
34+
35+
_proxyAssert.AssertRequestMethod(RequestMethod.DELETE);
36+
}
37+
38+
private void Delete(string? sender = null)
39+
{
40+
var action = new DeleteSendername(sender ?? "any");
41+
action.Proxy(_spyProxy);
42+
action.Execute();
43+
}
44+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using System.Net;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using SMSApi.Api;
4+
using SMSApi.Api.Action.Sendernames;
5+
using smsapiTests.Unit.Fixture;
6+
using smsapiTests.Unit.Helper;
7+
8+
namespace smsapiTests.Unit.Action.Sendernames;
9+
10+
[TestClass]
11+
public class DeleteSendernameResponseTest
12+
{
13+
private readonly ProxyStub _proxyStub = new();
14+
15+
[TestMethod]
16+
public void smoke_delete()
17+
{
18+
_proxyStub.SyncExecutionResponse = new HttpResponseEntity(
19+
"".ToHttpEntityStreamTask(),
20+
HttpStatusCode.Created
21+
);
22+
23+
Delete();
24+
25+
Assert.IsTrue(true);
26+
}
27+
28+
private void Delete()
29+
{
30+
var action = new DeleteSendername("any");
31+
action.Proxy(_proxyStub);
32+
33+
action.Execute();
34+
}
35+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Net;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
using SMSApi.Api;
6+
using SMSApi.Api.Action.Sendernames;
7+
using SMSApi.Api.Response.Sendernames;
8+
using smsapiTests.Unit.Fixture;
9+
using smsapiTests.Unit.Helper;
10+
11+
namespace smsapiTests.Unit.Action.Sendernames;
12+
13+
[TestClass]
14+
public class GetSendernameReponseTest
15+
{
16+
private readonly ProxyStub _proxyStub = new();
17+
18+
[TestMethod]
19+
public void map_response_to_sendername()
20+
{
21+
var createdAt = "2018-11-08T09:36:53+01:00";
22+
var isDefault = new Random().NextBoolean();
23+
var sender = "any sender";
24+
var status = "any status";
25+
var response = new Dictionary<string, dynamic>
26+
{
27+
{ "created_at", createdAt },
28+
{ "is_default", isDefault },
29+
{ "sender", sender },
30+
{ "status", status },
31+
};
32+
_proxyStub.SyncExecutionResponse = new HttpResponseEntity(
33+
response.ToHttpEntityStreamTask(),
34+
HttpStatusCode.Created
35+
);
36+
37+
var sendername = Get();
38+
39+
Assert.AreEqual(DateTime.Parse(createdAt), sendername.CreatedAt);
40+
Assert.AreEqual(isDefault, sendername.IsDefault);
41+
Assert.AreEqual(sender, sendername.Sender);
42+
Assert.AreEqual(status, sendername.Status);
43+
}
44+
45+
private Sendername Get()
46+
{
47+
var action = new GetSendername("any");
48+
action.Proxy(_proxyStub);
49+
50+
return action.Execute();
51+
}
52+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using SMSApi.Api;
4+
using SMSApi.Api.Action.Sendernames;
5+
6+
namespace smsapiTests.Unit.Action.Sendernames;
7+
8+
[TestClass]
9+
public class GetSendernameRequestTest
10+
{
11+
private readonly SpyProxy _spyProxy = new();
12+
private readonly ProxyAssert _proxyAssert;
13+
14+
public GetSendernameRequestTest()
15+
{
16+
_proxyAssert = new ProxyAssert(_spyProxy);
17+
}
18+
19+
[TestMethod]
20+
public void uri_is_valid()
21+
{
22+
var sender = "any sender";
23+
24+
Get(sender);
25+
26+
var encodedSender = Uri.EscapeDataString(sender);
27+
_proxyAssert.AssertUriEquals($"sms/sendernames/{encodedSender}");
28+
}
29+
30+
[TestMethod]
31+
public void request_method_is_get()
32+
{
33+
Get();
34+
35+
_proxyAssert.AssertRequestMethod(RequestMethod.GET);
36+
}
37+
38+
private void Get(string? sender = null)
39+
{
40+
var action = new GetSendername(sender ?? "any");
41+
action.Proxy(_spyProxy);
42+
action.Execute();
43+
}
44+
}

0 commit comments

Comments
 (0)