Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.lppsa.broker.testautomation.orders;
- import io.restassured.RestAssured;
- import io.restassured.http.ContentType;
- import org.junit.jupiter.api.BeforeAll;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- import org.w3c.dom.Document;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.transform.OutputKeys;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- import java.io.*;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import static io.restassured.RestAssured.given;
- import static org.hamcrest.CoreMatchers.containsString;
- import static org.hamcrest.CoreMatchers.is;
- public class SendTwoTheSameOrdersITTest {
- private static final String BASE_URL = "http://orders-broker-dev.locus-test.lppdev.pl";
- private static final String CREATE_ORDER_URL = BASE_URL + "/createOrder";
- private static final String AUTHORIZATION = "Authorization";
- private static final String BASE64_CREDENTIAL = "Basic bWFnZW50bzptYWdlbnRv";
- private Document doc;
- @BeforeAll
- public static void setUp() {
- RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
- }
- @BeforeEach
- public void beforeEach() throws Exception {
- doc = readXmlFromResource("integrationTestFiles/ordersFiles/sendOrderRequest/orderRequest.xml");
- }
- @Test
- public void sendTwoTheSameOrderId() throws Exception {
- String orderId = createOrderId();
- given()
- .header(AUTHORIZATION, BASE64_CREDENTIAL)
- .contentType(ContentType.XML)
- .body(injectOrderId(xmlDocToString(doc), orderId))
- .when()
- .post(CREATE_ORDER_URL)
- .then()
- .statusCode(201)
- .body(is(""));
- Thread.sleep(2000L);
- given()
- .header(AUTHORIZATION, BASE64_CREDENTIAL)
- .contentType(ContentType.XML)
- .body(injectOrderId(xmlDocToString(doc), orderId))
- .when()
- .post(CREATE_ORDER_URL)
- .then()
- .statusCode(400)
- .body(containsString("order_magento_order_id_unique]"));
- }
- private Document readXmlFromResource(String resource) throws ParserConfigurationException, IOException, org.xml.sax.SAXException {
- File requestFile = readFileFromResource(resource);
- DocumentBuilder db = createDocumentBuilder();
- return db.parse(new FileInputStream(requestFile));
- }
- private DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(false);
- return dbf.newDocumentBuilder();
- }
- private File readFileFromResource(String s) {
- return new File(
- getClass().getClassLoader().getResource(s).getFile()
- );
- }
- private String injectOrderId(String body, String orderId) {
- return String.format(body, orderId);
- }
- private String createOrderId() {
- Date date = new Date();
- return new SimpleDateFormat("ddHHmmssSS").format(date);
- }
- private String xmlDocToString(Document xml) throws Exception {
- Transformer tf = TransformerFactory.newInstance().newTransformer();
- tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
- tf.setOutputProperty(OutputKeys.INDENT, "yes");
- Writer out = new StringWriter();
- tf.transform(new DOMSource(xml), new StreamResult(out));
- return out.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement