1 package com.srv4pos.server.api.keyboard;
2
3 import com.srv4pos.server.api.ServiceFactory;
4 import com.srv4pos.server.api.infrastructure.IdentifierInfo;
5 import com.srv4pos.server.api.infrastructure.credentials.Credentials;
6 import com.srv4pos.server.api.infrastructure.http.Transport;
7 import com.srv4pos.server.api.seller.SellerService;
8
9 import java.net.URL;
10 import java.util.List;
11
12 import static org.junit.Assert.assertEquals;
13
14
15
16
17 public class KeyboardServiceSample {
18 private static final String FIRST_KEYBOARD_NAME = "Test";
19 private static final String SECOND_KEYBOARD_NAME = "Test 2";
20 private static final String THIRD_KEYBOARD_NAME = "Test 3";
21 private static final String FORTH_KEYBOARD_NAME = "Test 4";
22
23 private static final String FORTH_KEYBOARD_IDENTIFIER = "TESTKEYBOARD4";
24
25 private final SellerService sellerService;
26 private final KeyboardService keyboardService;
27
28 public KeyboardServiceSample(URL url, Credentials credentials, Transport transport) {
29 ServiceFactory serviceFactory = new ServiceFactory(url, credentials, transport);
30 keyboardService = serviceFactory.getKeyboardService();
31 sellerService = serviceFactory.getSellerService();
32 }
33
34 public void test() throws Exception {
35
36 int currentSellerVersion = sellerService.getThisVersion().getVersion();
37
38 KeyboardInfo first = createAndSaveKeyboard(currentSellerVersion, FIRST_KEYBOARD_NAME, DeviceFormFactor.TABLET_BIG);
39 currentSellerVersion++;
40
41 KeyboardInfo second = createAndSaveKeyboard(currentSellerVersion, SECOND_KEYBOARD_NAME, DeviceFormFactor.TABLET_BIG);
42 currentSellerVersion++;
43
44 KeyboardInfo third = createAndSaveKeyboard(currentSellerVersion, THIRD_KEYBOARD_NAME, DeviceFormFactor.TABLET_BIG);
45 currentSellerVersion++;
46
47
48 List<KeyboardInfo> keyboards = keyboardService.list(null);
49
50 assertEquals("Make sure server returns right amount of keyboards", 3, keyboards.size());
51
52 assertEquals("Name mismatch for first keyboard. Make sure server return right data", FIRST_KEYBOARD_NAME, keyboards.get(0).getName());
53 assertEquals("Name mismatch for second keyboard. Make sure server return right data", SECOND_KEYBOARD_NAME, keyboards.get(1).getName());
54 assertEquals("Name mismatch for third keyboard. Make sure server return right data", THIRD_KEYBOARD_NAME, keyboards.get(2).getName());
55
56
57 KeyboardInfo forth = new KeyboardInfo();
58 forth.setName(FORTH_KEYBOARD_NAME);
59 forth.setDeviceFormFactor(DeviceFormFactor.TABLET_BIG);
60 forth.setIdentifier(FORTH_KEYBOARD_IDENTIFIER);
61
62
63 keyboardService.put(currentSellerVersion, forth);
64 currentSellerVersion++;
65
66
67 keyboards = keyboardService.list(null);
68
69 assertEquals("Make sure server returns right amount of keyboards", 4, keyboards.size());
70 assertEquals("Name mismatch for forth keyboard. Make sure server return right data", FORTH_KEYBOARD_NAME, keyboards.get(3).getName());
71 assertEquals("Identifier mismatch for forth keyboard. Make sure server return right data", FORTH_KEYBOARD_IDENTIFIER, keyboards.get(3).getIdentifier());
72
73
74 forth.setName("Update me");
75
76 keyboardService.put(currentSellerVersion, forth);
77 currentSellerVersion++;
78
79
80 KeyboardInfo forthKeyboardFromServer = keyboardService.get(null, FORTH_KEYBOARD_IDENTIFIER);
81 assertEquals("Name mismatch for forth keyboard. Make sure server return right data", "Update me", forthKeyboardFromServer.getName());
82
83
84 keyboardService.delete(currentSellerVersion, second.getIdentifier());
85 currentSellerVersion++;
86 keyboardService.delete(currentSellerVersion, third.getIdentifier());
87 currentSellerVersion++;
88 keyboardService.delete(currentSellerVersion, forth.getIdentifier());
89
90
91 keyboards = keyboardService.list(null);
92 assertEquals("Make sure that keyboards successfully deleted", 1, keyboards.size());
93 }
94
95 private KeyboardInfo createAndSaveKeyboard(final int sellerVersion, final String name, final DeviceFormFactor deviceFormFactor) {
96 KeyboardInfo keyboardInfo = new KeyboardInfo();
97 keyboardInfo.setName(name);
98 keyboardInfo.setDeviceFormFactor(deviceFormFactor);
99
100 IdentifierInfo identifierInfo = keyboardService.create(sellerVersion, keyboardInfo);
101 keyboardInfo.setIdentifier(identifierInfo.getIdentifier());
102 return keyboardInfo;
103 }
104 }