diff --git a/src/test/java/de/rwth/swc/sqa/CustomerTest.java b/src/test/java/de/rwth/swc/sqa/CustomerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8bbaf725f1ce8cac5e569a90317912273abd26df --- /dev/null +++ b/src/test/java/de/rwth/swc/sqa/CustomerTest.java @@ -0,0 +1,147 @@ +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 de.rwth.swc.sqa.model.DiscountCard; +import io.restassured.RestAssured; + +@SpringBootTest(webEnvironment = RANDOM_PORT) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) +public class CustomerTest { + + @LocalServerPort + int serverPort; + + @BeforeEach + public void setup() { + RestAssured.port = serverPort; + } + + + @Test + @Order(1) + public void addCustomerTest() { + //400 + Map<String, Object> parms1 = new HashMap<String, Object>(); + parms1.put("birthdate", ""); + parms1.put("disabled", true); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms1).when().post("/customers").then().statusCode(400); + + //200 + Map<String, Object> parms = new HashMap<String, Object>(); + parms.put("birthdate", "2000-01-01"); + parms.put("disabled", false); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post("/customers").then().statusCode(201); + + Map<String, Object> parms3 = new HashMap<String, Object>(); + parms3.put("birthdate", "2001-01-01"); + parms3.put("disabled", false); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post("/customers").then().statusCode(201); + + + } + + @Test + @Order(2) + public void addDiscountCardToCustomerTest() { + Long customerId =0L; + String path = "/customers/"+customerId+"/discountcards"; + Map<String, Object> parms = new HashMap<String, Object>(); + //404 + customerId = 1L; + path = "/customers/"+customerId+"/discountcards"; + parms.clear(); + parms.put("customerId", customerId); + parms.put("id", 1L); + parms.put("type", 1); + parms.put("validFrom", "2022-01-01"); + parms.put("validFor", DiscountCard.ValidForEnum._30D); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post(path).then().statusCode(404); + + //400 + customerId = DataService.customerList.get(0).getId(); + path = "/customers/"+customerId+"/discountcards"; + parms.clear(); + parms.put("customerId", customerId); + parms.put("type", 1); + parms.put("validFrom", "2022-01-01"); + parms.put("validFor", DiscountCard.ValidForEnum._30D); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post(path).then().statusCode(400); + + + //201 + customerId = DataService.customerList.get(0).getId(); + path = "/customers/"+customerId+"/discountcards"; + parms.clear(); + parms.put("customerId", customerId); + parms.put("id", 1L); + parms.put("type", 1); + parms.put("validFrom", "2022-01-01"); + parms.put("validFor", DiscountCard.ValidForEnum._30D); + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post(path).then().statusCode(201); + + //409 repeat conflict + customerId = DataService.customerList.get(0).getId(); + path = "/customers/"+customerId+"/discountcards"; + parms.clear(); + parms.put("customerId", customerId); + parms.put("id", 1L); + parms.put("type", 1); + parms.put("validFrom", "2022-01-01"); + parms.put("validFor", DiscountCard.ValidForEnum._30D); + + RestAssured.given().header("content-Type", "application/json").and() + .body(parms).when().post(path).then().statusCode(409); + + + } + + @Test + @Order(3) + public void getCustomerDiscountCardTest() { + Long customerId =0L; + String path = "/customers/"+customerId+"/discountcards"; + //400 + path = "/customers/"+customerId+"/discountcards"; + RestAssured.given().when().get(path).then().statusCode(400); + + //404 + customerId = 11111L; + path = "/customers/"+customerId+"/discountcards"; + RestAssured.given().when().get(path).then().statusCode(404); + + + + //201 + customerId = DataService.customerList.get(0).getId(); + path = "/customers/"+customerId+"/discountcards"; + RestAssured.given().when().get(path).then().statusCode(200); + + + + } +} + + + + + + diff --git a/src/test/java/de/rwth/swc/sqa/TicketTest.java b/src/test/java/de/rwth/swc/sqa/TicketTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4d898012c02517a5e3c1d93238008c85d630ec19 --- /dev/null +++ b/src/test/java/de/rwth/swc/sqa/TicketTest.java @@ -0,0 +1,131 @@ +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); + + + + } + +} + + + + + +