Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.82 KB | None | 0 0
  1. package com.lppsa.broker.testautomation.orders;
  2.  
  3. import io.restassured.RestAssured;
  4. import io.restassured.http.ContentType;
  5. import org.junit.jupiter.api.BeforeAll;
  6. import org.junit.jupiter.api.BeforeEach;
  7. import org.junit.jupiter.api.Test;
  8. import org.w3c.dom.Document;
  9.  
  10. import javax.xml.parsers.DocumentBuilder;
  11. import javax.xml.parsers.DocumentBuilderFactory;
  12. import javax.xml.parsers.ParserConfigurationException;
  13. import javax.xml.transform.OutputKeys;
  14. import javax.xml.transform.Transformer;
  15. import javax.xml.transform.TransformerFactory;
  16. import javax.xml.transform.dom.DOMSource;
  17. import javax.xml.transform.stream.StreamResult;
  18. import java.io.*;
  19. import java.text.SimpleDateFormat;
  20. import java.util.Date;
  21.  
  22. import static io.restassured.RestAssured.given;
  23. import static org.hamcrest.CoreMatchers.containsString;
  24. import static org.hamcrest.CoreMatchers.is;
  25.  
  26. public class SendTwoTheSameOrdersITTest {
  27.  
  28.  
  29.     private static final String BASE_URL = "http://orders-broker-dev.locus-test.lppdev.pl";
  30.     private static final String CREATE_ORDER_URL = BASE_URL + "/createOrder";
  31.     private static final String AUTHORIZATION = "Authorization";
  32.     private static final String BASE64_CREDENTIAL = "Basic bWFnZW50bzptYWdlbnRv";
  33.  
  34.     private Document doc;
  35.  
  36.     @BeforeAll
  37.     public static void setUp() {
  38.         RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
  39.     }
  40.  
  41.     @BeforeEach
  42.     public void beforeEach() throws Exception {
  43.         doc = readXmlFromResource("integrationTestFiles/ordersFiles/sendOrderRequest/orderRequest.xml");
  44.     }
  45.  
  46.     @Test
  47.     public void sendTwoTheSameOrderId() throws Exception {
  48.         String orderId = createOrderId();
  49.         given()
  50.                 .header(AUTHORIZATION, BASE64_CREDENTIAL)
  51.                 .contentType(ContentType.XML)
  52.                 .body(injectOrderId(xmlDocToString(doc), orderId))
  53.                 .when()
  54.                 .post(CREATE_ORDER_URL)
  55.                 .then()
  56.                 .statusCode(201)
  57.                 .body(is(""));
  58.  
  59.         Thread.sleep(2000L);
  60.  
  61.         given()
  62.                 .header(AUTHORIZATION, BASE64_CREDENTIAL)
  63.                 .contentType(ContentType.XML)
  64.                 .body(injectOrderId(xmlDocToString(doc), orderId))
  65.                 .when()
  66.                 .post(CREATE_ORDER_URL)
  67.                 .then()
  68.                 .statusCode(400)
  69.                 .body(containsString("order_magento_order_id_unique]"));
  70.     }
  71.  
  72.     private Document readXmlFromResource(String resource) throws ParserConfigurationException, IOException, org.xml.sax.SAXException {
  73.         File requestFile = readFileFromResource(resource);
  74.         DocumentBuilder db = createDocumentBuilder();
  75.         return db.parse(new FileInputStream(requestFile));
  76.     }
  77.  
  78.     private DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
  79.         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  80.         dbf.setValidating(false);
  81.         return dbf.newDocumentBuilder();
  82.     }
  83.  
  84.     private File readFileFromResource(String s) {
  85.         return new File(
  86.                 getClass().getClassLoader().getResource(s).getFile()
  87.         );
  88.     }
  89.  
  90.     private String injectOrderId(String body, String orderId) {
  91.         return String.format(body, orderId);
  92.     }
  93.  
  94.     private String createOrderId() {
  95.         Date date = new Date();
  96.         return new SimpleDateFormat("ddHHmmssSS").format(date);
  97.     }
  98.  
  99.     private String xmlDocToString(Document xml) throws Exception {
  100.         Transformer tf = TransformerFactory.newInstance().newTransformer();
  101.         tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  102.         tf.setOutputProperty(OutputKeys.INDENT, "yes");
  103.         Writer out = new StringWriter();
  104.         tf.transform(new DOMSource(xml), new StreamResult(out));
  105.         return out.toString();
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement