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
43
44
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
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
145
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
189 } catch (Exception e) {
190 System.err.println(e.toString());
191 e.printStackTrace(System.err);
192 System.exit(1);
193
194 }
195 }
196
197 }