View Javadoc
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   * <p>User: Sergey, Date: 29.03.14 18:13</p>.
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          // get the version
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          //Get all keyboards from the server
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          //Put new keyboard
63          keyboardService.put(currentSellerVersion, forth);
64          currentSellerVersion++;
65  
66          //Retrieve list and check that forth keyboard has been saved
67          keyboards = keyboardService.list(null);
68          //CHECKSTYLE:OFF String appears several times
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          //Update forth keyboard
74          forth.setName("Update me");
75          //CHECKSTYLE:ON String appears several times
76          keyboardService.put(currentSellerVersion, forth);
77          currentSellerVersion++;
78  
79          //Get keyboard from the server by identifier
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          //Delete keyboards
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 }