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