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.HttpUrlTransport;
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
42
43
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
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 HttpUrlTransport();
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
141
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
185 } catch (Exception e) {
186 System.err.println(e.toString());
187 e.printStackTrace(System.err);
188 System.exit(1);
189
190 }
191 }
192
193 }