View Javadoc
1   package com.srv4pos.server.api;
2   
3   import com.srv4pos.server.api.activation.ActivationSecurityInfo;
4   import com.srv4pos.server.api.activation.ActivationServiceSample;
5   import com.srv4pos.server.api.auth.AuthServiceSample;
6   import com.srv4pos.server.api.category.CategoryServiceSample;
7   import com.srv4pos.server.api.commodity.CommodityServiceSample;
8   import com.srv4pos.server.api.customization.CustomizationServiceSample;
9   import com.srv4pos.server.api.hairdresser.HairdresserServiceSample;
10  import com.srv4pos.server.api.infrastructure.Logger;
11  import com.srv4pos.server.api.infrastructure.PrintStreamLogger;
12  import com.srv4pos.server.api.infrastructure.credentials.ActivationCredentials;
13  import com.srv4pos.server.api.infrastructure.credentials.AdminCredentials;
14  import com.srv4pos.server.api.infrastructure.credentials.SellerCredentials;
15  import com.srv4pos.server.api.infrastructure.http.HttpHelper;
16  import com.srv4pos.server.api.infrastructure.http.HttpUrlTrasport;
17  import com.srv4pos.server.api.infrastructure.http.Transport;
18  import com.srv4pos.server.api.keyboard.KeyboardServiceSample;
19  import com.srv4pos.server.api.keyboardentry.KeyboardEntryServiceSample;
20  import com.srv4pos.server.api.order.OrderServiceSample;
21  import com.srv4pos.server.api.posplus.PosPlusServiceSample;
22  import com.srv4pos.server.api.posplus.PosPlusSoftwareVendorServiceSample;
23  import com.srv4pos.server.api.precept.PreceptServiceSample;
24  import com.srv4pos.server.api.product.ProductServiceSample;
25  import com.srv4pos.server.api.receiptSettings.ReceiptSettingsServiceSample;
26  import com.srv4pos.server.api.registration.RegistrationServiceSample;
27  import com.srv4pos.server.api.restaurant.RestaurantServiceSample;
28  import com.srv4pos.server.api.sale.SaleServiceSample;
29  import com.srv4pos.server.api.sale.SaleSlotServiceSample;
30  import com.srv4pos.server.api.seller.SellerServiceSample;
31  import com.srv4pos.server.api.server.ServerServiceSample;
32  import com.srv4pos.server.api.sync.sample.SynchronizationSample;
33  import com.srv4pos.server.api.tax.TaxServiceSample;
34  import com.srv4pos.server.api.treasurer.TreasurerServiceSample;
35  
36  import java.net.URL;
37  import java.util.Date;
38  
39  import static java.lang.System.out;
40  
41  /**
42   * The tool to diagnoze server.
43   * User: Kirill
44   * Date: 25.07.13 12:27
45   */
46  public class Diagnostics {
47  
48      private static final String CONSTANT_TEST_PRODUCTS = "Test Products";
49      private static final String COUNTRY = "ua";
50      private final URL url;
51      private final Logger logger;
52      private boolean jndi;
53  
54      public Diagnostics(URL url, Logger logger, boolean jndi) {
55          this.url = url;
56          this.logger = logger;
57          this.jndi = jndi;
58      }
59  
60      //ToDo : rename all service test to service sample
61      public String run() throws Exception {
62  
63  
64          new ActivationCredentials("fi", "2663459", "PM22500000000000000001009").toAuthentication();
65  
66  
67          String tempCorporateId = ("tmp-" + Integer.toHexString(new Date().toString().hashCode())).toUpperCase(HttpHelper.DEFAULT_LOCALE);
68          ActivationCredentials activationCredentials = null;
69          Transport transport = new HttpUrlTrasport();
70          try {
71              logger.log("Test Activation");
72              ActivationSecurityInfo activationSecurityInfo =
73                      new ActivationServiceSample(url, new SellerCredentials(COUNTRY,  tempCorporateId), transport).test();
74              logger.log("Successfully activated");
75  
76              activationCredentials = new ActivationCredentials(COUNTRY, tempCorporateId, activationSecurityInfo.getApiKey());
77  
78              logger.log("Test security enabled by Seller %s", tempCorporateId);
79              new SellerServiceSample(url, activationCredentials, transport).testSecurityEnabled();
80  
81              logger.log("Test server storage");
82              new ServerServiceSample(url, transport).test(jndi);
83  
84              logger.log("Test handshake");
85              new AuthServiceSample(url, transport).test();
86  
87              logger.log("Test Seller %s", tempCorporateId);
88              new SellerServiceSample(url, activationCredentials, transport).test();
89  
90              logger.log("Test Taxes");
91              new TaxServiceSample(url, activationCredentials, transport).test();
92  
93              logger.log("Test Categories");
94              new CategoryServiceSample(url, activationCredentials, transport).test();
95  
96              logger.log(CONSTANT_TEST_PRODUCTS);
97              new ProductServiceSample(url, activationCredentials, transport).testPictures();
98  
99              logger.log("Test Commodities");
100             new CommodityServiceSample(url, activationCredentials, transport).test();
101 
102             logger.log("Test Seller pictures");
103             new SellerServiceSample(url, activationCredentials, transport).testPictures();
104 
105             logger.log("Test Categories pictures");
106             new CategoryServiceSample(url, activationCredentials, transport).testPictures();
107 
108             final OrderServiceSample orderServiceSample = new OrderServiceSample(url, activationCredentials, transport);
109 
110             logger.log("Test sending Order");
111             orderServiceSample.testSendOrder();
112 
113             logger.log("Test getting Order");
114             orderServiceSample.testGetOrder();
115 
116             logger.log("Test putting Order");
117             orderServiceSample.testPutOrder();
118 
119             logger.log("Test PosPlus for activation");
120             new PosPlusServiceSample(url, activationCredentials, transport).test();
121 
122             logger.log("Test PosPlus for software vendor");
123             new PosPlusSoftwareVendorServiceSample(url, new AdminCredentials("adminForTests", "test123"), transport);
124 
125             logger.log("Test Keyboard");
126             new KeyboardServiceSample(url, activationCredentials, transport).test();
127 
128             logger.log("Test KeyboardEntry");
129             new KeyboardEntryServiceSample(url, activationCredentials, transport).test();
130 
131             logger.log("Test Registration");
132             new RegistrationServiceSample(url, activationCredentials, transport).test();
133 
134             logger.log("Test Restaurant");
135             new RestaurantServiceSample(url, activationCredentials, transport).test();
136 
137             logger.log("Test Hairdresser");
138             new HairdresserServiceSample(url, activationCredentials, transport).test();
139 
140             logger.log("Test Treasurer");
141             new TreasurerServiceSample(url, activationCredentials, transport).test();
142 
143             logger.log("Test Booking");
144             // deactivated since Booking denies activation credentials
145             //new BookingServiceSample(url, activationCredentials, transport).test();
146 
147             logger.log("Test Customization");
148             new CustomizationServiceSample(url, activationCredentials, transport).test();
149 
150             logger.log("Test Receipt Settings");
151             new ReceiptSettingsServiceSample(url, activationCredentials, transport).test();
152 
153             logger.log("Test Sale");
154             new SaleServiceSample(url, activationCredentials, transport).test();
155 
156             logger.log("Test Sale Slot");
157             new SaleSlotServiceSample(url, activationCredentials, transport).test();
158 
159             logger.log("Test Precept");
160             new PreceptServiceSample(url, activationCredentials, transport).test();
161 
162             logger.log("Test Synchronization");
163             new SynchronizationSample(url, activationCredentials, transport).test();
164 
165             logger.log("Test Seller Modifications");
166             new SellerServiceSample(url, activationCredentials, transport).testSellerModifications();
167 
168         } finally {
169             if (activationCredentials != null) {
170                 logger.log("Deleting seller %s", tempCorporateId);
171                 new SellerServiceSample(url, activationCredentials, transport).removeSeller(activationCredentials.getSellerId());
172             }
173         }
174         return tempCorporateId;
175     }
176 
177     public static void main(String[] args) {
178         if (args.length < 2) {
179             out.println(String.format("Usage: java -jar server-api-%s.jar <url> true|false", Registry.VERSION));
180             out.println("       true - server reads settings from jndi");
181             out.println("       false - server uses default setting (database in memory)");
182             System.exit(2);
183         }
184         try {
185             new Diagnostics(Registry.wrap(args[0]), new PrintStreamLogger(out, true), Boolean.valueOf(args[1])).run();
186             out.println("\nEVERYTHING IS OK!!!");
187             System.exit(0);
188             //CHECKSTYLE:OFF IllegalCatch
189         } catch (Exception e) {
190             System.err.println(e.toString());
191             e.printStackTrace(System.err);
192             System.exit(1);
193             //CHECKSTYLE:ON IllegalCatch
194         }
195     }
196 
197 }