Skip to content

Commit 77ad0ee

Browse files
committed
Adds fluent interface to subuser add and edit actions
1 parent b6c35ca commit 77ad0ee

File tree

5 files changed

+116
-111
lines changed

5 files changed

+116
-111
lines changed

src/main/java/pl/smsapi/api/action/subusers/SubuserAdd.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,33 @@ protected Subuser createResponse(String data) {
1919
return new Subuser.SubuserFromJsonFactory().createFrom(new JSONObject(data));
2020
}
2121

22-
public void withApiPassword(String apiPassword) {
22+
public SubuserAdd withApiPassword(String apiPassword) {
2323
params.put("credentials[api_password]", apiPassword);
24+
return this;
2425
}
2526

26-
public void asActive() {
27+
public SubuserAdd asActive() {
2728
params.put("active", "1");
29+
return this;
2830
}
2931

30-
public void asInactive() {
32+
public SubuserAdd asInactive() {
3133
params.put("active", "0");
34+
return this;
3235
}
3336

34-
public void withDescription(String description) {
37+
public SubuserAdd withDescription(String description) {
3538
params.put("description", description);
39+
return this;
3640
}
3741

38-
public void withPointsFromAccount(double pointsFromAccount) {
42+
public SubuserAdd withPointsFromAccount(double pointsFromAccount) {
3943
params.put("points[from_account]", String.valueOf(pointsFromAccount));
44+
return this;
4045
}
4146

42-
public void withPointsPerMonth(double pointsPerMonth) {
47+
public SubuserAdd withPointsPerMonth(double pointsPerMonth) {
4348
params.put("points[per_month]", String.valueOf(pointsPerMonth));
49+
return this;
4450
}
4551
}

src/main/java/pl/smsapi/api/action/subusers/SubuserEdit.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,38 @@ protected Subuser createResponse(String data) {
2525
return new Subuser.SubuserFromJsonFactory().createFrom(new JSONObject(data));
2626
}
2727

28-
public void withPassword(String password) {
28+
public SubuserEdit withPassword(String password) {
2929
params.put("credentials[password]", password);
30+
return this;
3031
}
3132

32-
public void withApiPassword(String apiPassword) {
33+
public SubuserEdit withApiPassword(String apiPassword) {
3334
params.put("credentials[api_password]", apiPassword);
35+
return this;
3436
}
3537

36-
public void asActive() {
38+
public SubuserEdit asActive() {
3739
params.put("active", "1");
40+
return this;
3841
}
3942

40-
public void asInactive() {
43+
public SubuserEdit asInactive() {
4144
params.put("active", "0");
45+
return this;
4246
}
4347

44-
public void withDescription(String description) {
48+
public SubuserEdit withDescription(String description) {
4549
params.put("description", description);
50+
return this;
4651
}
4752

48-
public void withPointsFromAccount(double pointsFromAccount) {
53+
public SubuserEdit withPointsFromAccount(double pointsFromAccount) {
4954
params.put("points[from_account]", String.valueOf(pointsFromAccount));
55+
return this;
5056
}
5157

52-
public void withPointsPerMonth(double pointsPerMonth) {
58+
public SubuserEdit withPointsPerMonth(double pointsPerMonth) {
5359
params.put("points[per_month]", String.valueOf(pointsPerMonth));
60+
return this;
5461
}
5562
}

src/test/java/pl/smsapi/api/action/subusers/SubuserAddTest.java

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,31 @@ public class SubuserAddTest {
1313

1414
@Test
1515
public void executeAddSubuserRequest() throws SmsapiException {
16-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
1716
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!");
18-
action.client(new ClientStub());
19-
action.proxy(requestStub);
2017

21-
action.execute();
18+
ProxyRequestSpy requestSpy = executeAction(action);
2219

23-
assertEquals("POST", requestStub.requestMethod);
24-
assertEquals("subusers", requestStub.requestEndpoint);
20+
assertEquals("POST", requestSpy.requestMethod);
21+
assertEquals("subusers", requestSpy.requestEndpoint);
2522
HashMap<String, String> expectedRequestPayload = new HashMap<>();
2623
expectedRequestPayload.put("credentials[username]", "smsapi-java-client");
2724
expectedRequestPayload.put("credentials[password]", "StrongPassword123!");
28-
assertEquals(expectedRequestPayload, requestStub.requestPayload);
25+
assertEquals(expectedRequestPayload, requestSpy.requestPayload);
2926
}
3027

3128
@Test
3229
public void executeAddSubuserWithOptionalFieldsRequest() throws SmsapiException {
33-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
34-
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!");
35-
action.client(new ClientStub());
36-
action.proxy(requestStub);
37-
action.withApiPassword("AnotherStrongPassword123!");
38-
action.asActive();
39-
action.withDescription("Resource description");
40-
action.withPointsFromAccount(11.11);
41-
action.withPointsPerMonth(22.22);
30+
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!")
31+
.withApiPassword("AnotherStrongPassword123!")
32+
.asActive()
33+
.withDescription("Resource description")
34+
.withPointsFromAccount(11.11)
35+
.withPointsPerMonth(22.22);
4236

43-
action.execute();
37+
ProxyRequestSpy requestSpy = executeAction(action);
4438

45-
assertEquals("POST", requestStub.requestMethod);
46-
assertEquals("subusers", requestStub.requestEndpoint);
39+
assertEquals("POST", requestSpy.requestMethod);
40+
assertEquals("subusers", requestSpy.requestEndpoint);
4741
HashMap<String, String> expectedRequestPayload = new HashMap<>();
4842
expectedRequestPayload.put("credentials[username]", "smsapi-java-client");
4943
expectedRequestPayload.put("credentials[password]", "StrongPassword123!");
@@ -52,44 +46,46 @@ public void executeAddSubuserWithOptionalFieldsRequest() throws SmsapiException
5246
expectedRequestPayload.put("description", "Resource description");
5347
expectedRequestPayload.put("points[from_account]", "11.11");
5448
expectedRequestPayload.put("points[per_month]", "22.22");
55-
assertEquals(expectedRequestPayload, requestStub.requestPayload);
49+
assertEquals(expectedRequestPayload, requestSpy.requestPayload);
5650
}
5751

5852
@Test
5953
public void executeAddSubuserAsActiveRequest() throws SmsapiException {
60-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
61-
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!");
62-
action.client(new ClientStub());
63-
action.proxy(requestStub);
64-
action.asActive();
54+
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!")
55+
.asActive();
6556

66-
action.execute();
57+
ProxyRequestSpy requestSpy = executeAction(action);
6758

68-
assertEquals("POST", requestStub.requestMethod);
69-
assertEquals("subusers", requestStub.requestEndpoint);
59+
assertEquals("POST", requestSpy.requestMethod);
60+
assertEquals("subusers", requestSpy.requestEndpoint);
7061
HashMap<String, String> expectedRequestPayload = new HashMap<>();
7162
expectedRequestPayload.put("credentials[username]", "smsapi-java-client");
7263
expectedRequestPayload.put("credentials[password]", "StrongPassword123!");
7364
expectedRequestPayload.put("active", "1");
74-
assertEquals(expectedRequestPayload, requestStub.requestPayload);
65+
assertEquals(expectedRequestPayload, requestSpy.requestPayload);
7566
}
7667

7768
@Test
7869
public void executeAddSubuserAsInactiveRequest() throws SmsapiException {
79-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
80-
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!");
81-
action.client(new ClientStub());
82-
action.proxy(requestStub);
83-
action.asInactive();
70+
SubuserAdd action = new SubuserAdd("smsapi-java-client", "StrongPassword123!")
71+
.asInactive();
8472

85-
action.execute();
73+
ProxyRequestSpy requestSpy = executeAction(action);
8674

87-
assertEquals("POST", requestStub.requestMethod);
88-
assertEquals("subusers", requestStub.requestEndpoint);
75+
assertEquals("POST", requestSpy.requestMethod);
76+
assertEquals("subusers", requestSpy.requestEndpoint);
8977
HashMap<String, String> expectedRequestPayload = new HashMap<>();
9078
expectedRequestPayload.put("credentials[username]", "smsapi-java-client");
9179
expectedRequestPayload.put("credentials[password]", "StrongPassword123!");
9280
expectedRequestPayload.put("active", "0");
93-
assertEquals(expectedRequestPayload, requestStub.requestPayload);
81+
assertEquals(expectedRequestPayload, requestSpy.requestPayload);
82+
}
83+
84+
private ProxyRequestSpy executeAction(SubuserAdd action) throws SmsapiException {
85+
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
86+
action.client(new ClientStub());
87+
action.proxy(requestStub);
88+
action.execute();
89+
return requestStub;
9490
}
9591
}

src/test/java/pl/smsapi/api/action/subusers/SubuserEditTest.java

Lines changed: 38 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,77 +13,73 @@ public class SubuserEditTest {
1313

1414
@Test
1515
public void executeEditSubuserRequest() throws SmsapiException {
16-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
17-
SubuserEdit actionEdit = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f");
18-
actionEdit.client(new ClientStub());
19-
actionEdit.proxy(requestStub);
16+
SubuserEdit action = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f");
2017

21-
actionEdit.execute();
18+
ProxyRequestSpy requestSpy = executeAction(action);
2219

23-
assertEquals("PUT", requestStub.requestMethod);
24-
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestStub.requestEndpoint);
20+
assertEquals("PUT", requestSpy.requestMethod);
21+
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestSpy.requestEndpoint);
2522
HashMap<String, String> expectedRequestPayload = new HashMap<>();
26-
assertEquals(requestStub.requestPayload, expectedRequestPayload);
23+
assertEquals(requestSpy.requestPayload, expectedRequestPayload);
2724
}
2825

2926
@Test
3027
public void executeEditSubuserWithOptionalFieldsRequest() throws SmsapiException {
31-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
32-
SubuserEdit actionEdit = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f");
33-
actionEdit.client(new ClientStub());
34-
actionEdit.proxy(requestStub);
35-
actionEdit.withPassword("NewStrongPassword123!");
36-
actionEdit.withApiPassword("NewAnotherStrongPassword123!");
37-
actionEdit.asActive();
38-
actionEdit.withDescription("New resource description");
39-
actionEdit.withPointsFromAccount(999.99);
40-
actionEdit.withPointsPerMonth(111.11);
41-
42-
actionEdit.execute();
43-
44-
assertEquals("PUT", requestStub.requestMethod);
45-
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestStub.requestEndpoint);
28+
SubuserEdit action = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f")
29+
.withPassword("NewStrongPassword123!")
30+
.withApiPassword("NewAnotherStrongPassword123!")
31+
.asActive()
32+
.withDescription("New resource description")
33+
.withPointsFromAccount(999.99)
34+
.withPointsPerMonth(111.11);
35+
36+
ProxyRequestSpy requestSpy = executeAction(action);
37+
38+
assertEquals("PUT", requestSpy.requestMethod);
39+
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestSpy.requestEndpoint);
4640
HashMap<String, String> expectedRequestPayload = new HashMap<>();
4741
expectedRequestPayload.put("credentials[password]", "NewStrongPassword123!");
4842
expectedRequestPayload.put("credentials[api_password]", "NewAnotherStrongPassword123!");
4943
expectedRequestPayload.put("active", "1");
5044
expectedRequestPayload.put("description", "New resource description");
5145
expectedRequestPayload.put("points[from_account]", "999.99");
5246
expectedRequestPayload.put("points[per_month]", "111.11");
53-
assertEquals(requestStub.requestPayload, expectedRequestPayload);
47+
assertEquals(requestSpy.requestPayload, expectedRequestPayload);
5448
}
5549

5650
@Test
5751
public void executeEditSubuserAsActiveRequest() throws SmsapiException {
58-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
59-
SubuserEdit actionEdit = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f");
60-
actionEdit.client(new ClientStub());
61-
actionEdit.proxy(requestStub);
62-
actionEdit.asActive();
52+
SubuserEdit action = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f")
53+
.asActive();
6354

64-
actionEdit.execute();
55+
ProxyRequestSpy requestSpy = executeAction(action);
6556

66-
assertEquals("PUT", requestStub.requestMethod);
67-
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestStub.requestEndpoint);
57+
assertEquals("PUT", requestSpy.requestMethod);
58+
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestSpy.requestEndpoint);
6859
HashMap<String, String> expectedRequestPayload = new HashMap<>();
6960
expectedRequestPayload.put("active", "1");
70-
assertEquals(requestStub.requestPayload, expectedRequestPayload);
61+
assertEquals(requestSpy.requestPayload, expectedRequestPayload);
7162
}
7263

7364
@Test
7465
public void executeEditSubuserAsInactiveRequest() throws SmsapiException {
75-
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
76-
SubuserEdit actionEdit = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f");
77-
actionEdit.client(new ClientStub());
78-
actionEdit.proxy(requestStub);
79-
actionEdit.asInactive();
66+
SubuserEdit action = new SubuserEdit("0f0f0f0f0f0f0f0f0f0f0f0f")
67+
.asInactive();
8068

81-
actionEdit.execute();
69+
ProxyRequestSpy requestSpy = executeAction(action);
8270

83-
assertEquals("PUT", requestStub.requestMethod);
84-
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestStub.requestEndpoint);
71+
assertEquals("PUT", requestSpy.requestMethod);
72+
assertEquals("subusers/0f0f0f0f0f0f0f0f0f0f0f0f", requestSpy.requestEndpoint);
8573
HashMap<String, String> expectedRequestPayload = new HashMap<>();
8674
expectedRequestPayload.put("active", "0");
87-
assertEquals(requestStub.requestPayload, expectedRequestPayload);
75+
assertEquals(requestSpy.requestPayload, expectedRequestPayload);
76+
}
77+
78+
private ProxyRequestSpy executeAction(SubuserEdit action) throws SmsapiException {
79+
ProxyRequestSpy requestStub = new ProxyRequestSpy(SubuserJsonMother.create());
80+
action.client(new ClientStub());
81+
action.proxy(requestStub);
82+
action.execute();
83+
return requestStub;
8884
}
8985
}

src/test/java/pl/smsapi/api/action/subusers/SubusersFactoryTest.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ public void setUp() {
2727
public void addSubuser() throws SmsapiException {
2828
String username = "smsapi-java-client-" + new Random().nextLong();
2929

30-
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!");
31-
actionAdd.withApiPassword("AnotherStrongPassword123!");
32-
actionAdd.withDescription("Resource description");
33-
actionAdd.withPointsFromAccount(11.11);
34-
actionAdd.withPointsPerMonth(22.22);
30+
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!")
31+
.withApiPassword("AnotherStrongPassword123!")
32+
.withDescription("Resource description")
33+
.withPointsFromAccount(11.11)
34+
.withPointsPerMonth(22.22);
3535
Subuser responseAdd = actionAdd.execute();
3636

3737
assertNotNull(responseAdd);
@@ -46,9 +46,9 @@ public void addSubuser() throws SmsapiException {
4646
public void addSubuserAsActive() throws SmsapiException {
4747
String username = "smsapi-java-client-" + new Random().nextLong();
4848

49-
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!");
50-
actionAdd.withApiPassword("AnotherStrongPassword123!");
51-
actionAdd.asActive();
49+
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!")
50+
.withApiPassword("AnotherStrongPassword123!")
51+
.asActive();
5252
Subuser responseAdd = actionAdd.execute();
5353

5454
assertNotNull(responseAdd);
@@ -59,9 +59,9 @@ public void addSubuserAsActive() throws SmsapiException {
5959
public void addSubuserAsInactive() throws SmsapiException {
6060
String username = "smsapi-java-client-" + new Random().nextLong();
6161

62-
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!");
63-
actionAdd.withApiPassword("AnotherStrongPassword123!");
64-
actionAdd.asInactive();
62+
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!")
63+
.withApiPassword("AnotherStrongPassword123!")
64+
.asInactive();
6565
Subuser responseAdd = actionAdd.execute();
6666

6767
assertNotNull(responseAdd);
@@ -88,13 +88,13 @@ public void editSubuser() throws SmsapiException {
8888
SubuserAdd actionAdd = apiFactory.actionAdd(username, "StrongPassword123!");
8989
Subuser responseAdd = actionAdd.execute();
9090

91-
SubuserEdit actionEdit = apiFactory.actionEdit(responseAdd.id);
92-
actionEdit.withPassword("NewStrongPassword123!");
93-
actionEdit.withApiPassword("NewAnotherStrongPassword123!!");
94-
actionEdit.asActive();
95-
actionEdit.withDescription("New resource description");
96-
actionEdit.withPointsFromAccount(999.99);
97-
actionEdit.withPointsPerMonth(111.11);
91+
SubuserEdit actionEdit = apiFactory.actionEdit(responseAdd.id)
92+
.withPassword("NewStrongPassword123!")
93+
.withApiPassword("NewAnotherStrongPassword123!!")
94+
.asActive()
95+
.withDescription("New resource description")
96+
.withPointsFromAccount(999.99)
97+
.withPointsPerMonth(111.11);
9898
Subuser responseEdit = actionEdit.execute();
9999

100100
assertNotNull(responseEdit);

0 commit comments

Comments
 (0)