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