1 package com.srv4pos.server.api.tax;
2
3 import com.srv4pos.server.api.ServiceFactory;
4 import com.srv4pos.server.api.infrastructure.IdentifierInfo;
5 import com.srv4pos.server.api.infrastructure.credentials.Credentials;
6 import com.srv4pos.server.api.infrastructure.http.Transport;
7 import com.srv4pos.server.api.seller.SellerService;
8
9 import java.net.URL;
10 import java.util.List;
11
12 import static org.junit.Assert.assertEquals;
13
14
15
16
17 public class TaxServiceSample {
18 private static final String FIRST_TAX_NAME = "Tax 1";
19 private static final String SECOND_TAX_NAME = "Tax 2";
20 private static final String THIRD_TAX_NAME = "Tax 3";
21 private static final String THIRD_TAX_NAME_UPDATED = "Tax 3.1";
22
23 private final SellerService sellerService;
24 private final TaxService taxService;
25
26 public TaxServiceSample(URL url, Credentials credentials, Transport transport) {
27 ServiceFactory serviceFactory = new ServiceFactory(url, credentials, transport);
28 taxService = serviceFactory.getTaxService();
29 sellerService = serviceFactory.getSellerService();
30 }
31
32 public void test() throws Exception {
33
34 int currentSellerVersion = sellerService.getThisVersion().getVersion();
35
36
37 TaxInfo first = createAndSaveTax(currentSellerVersion, FIRST_TAX_NAME, 1);
38 currentSellerVersion++;
39
40 TaxInfo second = createAndSaveTax(currentSellerVersion, SECOND_TAX_NAME, 2);
41 currentSellerVersion++;
42
43
44 List<TaxInfo> taxes = taxService.list(null);
45
46 assertEquals("Make sure server returns right amount of taxes", 2, taxes.size());
47
48 assertEquals("Name mismatch for first tax. Make sure server return right data", FIRST_TAX_NAME, taxes.get(0).getName());
49 assertEquals("Name mismatch for second tax. Make sure server return right data", SECOND_TAX_NAME, taxes.get(1).getName());
50
51
52 TaxInfo third = createAndSaveTax(currentSellerVersion, THIRD_TAX_NAME, 99);
53 currentSellerVersion++;
54
55 TaxInfo thirdTaxFromServer = taxService.get(null, third.getIdentifier());
56
57 assertEquals("Name mismatch for third tax. Make sure server return right data ", THIRD_TAX_NAME, thirdTaxFromServer.getName());
58
59
60 third.setName(THIRD_TAX_NAME_UPDATED);
61 taxService.put(currentSellerVersion, third);
62 currentSellerVersion++;
63
64 thirdTaxFromServer = taxService.get(null, third.getIdentifier());
65 assertEquals("Name mismatch for third tax. Make sure server return right data", THIRD_TAX_NAME_UPDATED, thirdTaxFromServer.getName());
66
67
68
69 taxService.delete(currentSellerVersion, third.getIdentifier());
70
71 taxes = taxService.list(null);
72 assertEquals("Make sure tha tax has been deleted", 2, taxes.size());
73 }
74
75 private TaxInfo createAndSaveTax(int sellerVersion, final String name, int vat) {
76 TaxInfo tax = new TaxInfo();
77 tax.setName(name);
78 tax.setVat(vat);
79
80 IdentifierInfo identifierInfo = taxService.create(sellerVersion, tax);
81 tax.setIdentifier(identifierInfo.getIdentifier());
82 return tax;
83 }
84 }