View Javadoc
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   * <p>User: Kirill, Date: 11.09.13 16:18</p>.
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          // get the version
34          int currentSellerVersion = sellerService.getThisVersion().getVersion();
35  
36          // create test tax
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          //Get all taxes from the server
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          //Create another tax
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          // update tax's data
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          //Delete tax from server
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  }