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