package de.rwth.swc.sqa; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; import java.util.HashMap; import java.util.Map; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.web.server.LocalServerPort; import io.restassured.RestAssured; @SpringBootTest(webEnvironment = RANDOM_PORT) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class TicketTest { @LocalServerPort int serverPort; @BeforeEach public void setup() { RestAssured.port = serverPort; } @Test @Order(1) public void buyTicketTest() { //400//no birthdate Map<String, Object> parms1 = new HashMap<String, Object>(); parms1.put("validFor", "1h");// parms1.put("zone", "A"); parms1.put("student", true); parms1.put("discountCard", true); parms1.put("disabled", true); parms1.put("validFrom", "2022-05-20 10:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms1).when().post("/tickets").then().statusCode(400); //200 parms1.clear(); parms1.put("birthdate", "1992-01-01"); parms1.put("validFor", "1d"); parms1.put("zone", "A"); parms1.put("student", true); parms1.put("discountCard", true); parms1.put("disabled", true); parms1.put("validFrom", "2022-05-20 10:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms1).when().post("/tickets").then().statusCode(200); parms1.clear(); parms1.put("birthdate", "1992-01-01"); parms1.put("validFor", "30d"); parms1.put("zone", "A"); parms1.put("student", true); parms1.put("discountCard", true); parms1.put("disabled", true); parms1.put("validFrom", "2022-05-20 10:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms1).when().post("/tickets").then().statusCode(200); } @Test @Order(2) public void validateTicketTest() { String path = "/tickets/validate"; Long ticketId =0L; Map<String, Object> parms = new HashMap<String, Object>(); //400 //格式不对,缺少必要信息 parms.clear(); parms.put("ticketId", ticketId); RestAssured.given().header("content-Type", "application/json").and() .body(parms).when().post(path).then().statusCode(400); //403 //ticketid不对 parms.clear(); parms.put("ticketId", ticketId); parms.put("birthdate", "1992-01-01"); parms.put("zone", "A"); parms.put("student", true); parms.put("disabled", true); parms.put("date", "2022-05-22 10:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms).when().post(path).then().statusCode(403); //403//时间过期 ticketId = DataService.ticketList.get(0).getId(); parms.clear(); parms.put("ticketId", ticketId); parms.put("birthdate", "1992-01-01"); parms.put("zone", "A"); parms.put("student", true); parms.put("disabled", true); parms.put("date", "2022-05-22 10:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms).when().post(path).then().statusCode(403); //200//信息一致,且有效期内 ticketId = DataService.ticketList.get(0).getId(); parms.clear(); parms.put("ticketId", ticketId); parms.put("birthdate", "1992-01-01"); parms.put("zone", "A"); parms.put("student", true); parms.put("disabled", true); parms.put("date", "2022-05-20 12:00:00"); RestAssured.given().header("content-Type", "application/json").and() .body(parms).when().post(path).then().statusCode(200); } }