From 5142d5639e0a67a061d6ebda827aface5b27192f Mon Sep 17 00:00:00 2001 From: Sara Prifti <72574638+sarapr97@users.noreply.github.com> Date: Thu, 26 May 2022 22:59:26 +0200 Subject: [PATCH] different cases for buyTickets Tests Work! --- .../java/de/rwth/swc/sqa/DataService.java | 35 +++++--- .../de/rwth/swc/sqa/api/TicketController.java | 1 + src/test/java/de/rwth/swc/sqa/TicketTest.java | 79 +++++++++++++++++-- 3 files changed, 97 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/rwth/swc/sqa/DataService.java b/src/main/java/de/rwth/swc/sqa/DataService.java index 67a612d..1a415cf 100644 --- a/src/main/java/de/rwth/swc/sqa/DataService.java +++ b/src/main/java/de/rwth/swc/sqa/DataService.java @@ -15,6 +15,8 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; +import static de.rwth.swc.sqa.model.Ticket.ValidForEnum.*; + @Service public class DataService { public static List<Customer> customerList = new ArrayList<Customer>(); @@ -38,25 +40,36 @@ public class DataService { //if customer is a senior if(DataService.customerIsSenior(customer)){ if(ticket.getValidFor().getValue().equals("1d") || ticket.getValidFor().getValue().equals("30d") || ticket.getValidFor().getValue().equals("1y")){ - isValid=true; + if(ticket.getStudent()==false){ + isValid=true; + } return isValid; + } + //if customer is a student + //it does not matter if it`s not a student since he is still an adult and can buy an adult ticket }else if (DataService.customerIsStudent(customer)){ - if(ticket.getValidFor().getValue().equals("30d") || ticket.getValidFor().getValue().equals("1y")){ - isValid=true; + + if (ticket.getValidFor().getValue().equals("30d") || ticket.getValidFor().getValue().equals("1y")) { + isValid = true; return isValid; } + }else if (DataService.customerIsChild(customer)){ - if(ticket.getValidFor().getValue().equals("1h") || ticket.getValidFor().getValue().equals("30d") || ticket.getValidFor().getValue().equals("1y")){ - isValid=true; + if((ticket.getValidFor().getValue().equals("1h") || ticket.getValidFor().getValue().equals("30d") || ticket.getValidFor().getValue().equals("1y") )){ + if(ticket.getStudent()==false){ + isValid=true; + } return isValid; } }else if (DataService.customerIsAdult(customer)){ - isValid=true; - return isValid; + if(ticket.getStudent()==false){ + isValid=true; + return isValid; + } } return isValid; } @@ -77,7 +90,7 @@ public class DataService { //customer is senior - //Senior + //Senior >60 //born before 1962 public static boolean customerIsSenior(Customer customer){ boolean isSenior= false; @@ -90,7 +103,7 @@ public class DataService { } - //customer is a child + //customer is a child <14 //born before 2008 public static boolean customerIsChild(Customer customer){ boolean isChild= false; @@ -102,7 +115,7 @@ public class DataService { } - //Student + //Student <28 //born after 1994 public static boolean customerIsStudent(Customer customer){ boolean isStudent= false; @@ -113,7 +126,7 @@ public class DataService { return isStudent; } - //Adult + //Adult is not a child //after 2008 public static boolean customerIsAdult(Customer customer){ boolean isAdult = false; diff --git a/src/main/java/de/rwth/swc/sqa/api/TicketController.java b/src/main/java/de/rwth/swc/sqa/api/TicketController.java index 4ee10aa..cdc5ad3 100644 --- a/src/main/java/de/rwth/swc/sqa/api/TicketController.java +++ b/src/main/java/de/rwth/swc/sqa/api/TicketController.java @@ -40,6 +40,7 @@ public class TicketController implements TicketsApi{ Customer customer=new Customer(); customer.setBirthdate(body.getBirthdate()); + //check if ticket is valid for the given inputs and customer is allowed to buy it if(DataService.ticketIsValidForTheCustomerAge(customer,ticket)){ DataService.ticketList.add(ticket); diff --git a/src/test/java/de/rwth/swc/sqa/TicketTest.java b/src/test/java/de/rwth/swc/sqa/TicketTest.java index cc84839..43532df 100644 --- a/src/test/java/de/rwth/swc/sqa/TicketTest.java +++ b/src/test/java/de/rwth/swc/sqa/TicketTest.java @@ -44,29 +44,94 @@ public class TicketTest { .body(parms1).when().post("/tickets").then().statusCode(400); //200 + //adult and not student parms1.clear(); parms1.put("birthdate", "1992-01-01"); parms1.put("validFor", "1d"); parms1.put("zone", "A"); + parms1.put("student", false); + 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); + + //adult and student + //400 + 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(400); - + + + + //senior and 24h ticket + //200 parms1.clear(); - parms1.put("birthdate", "1992-01-01"); + parms1.put("birthdate", "1962-01-01"); parms1.put("validFor", "30d"); parms1.put("zone", "A"); + parms1.put("student", false); + 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); + + //child and 24h ticket + //400 + parms1.clear(); + parms1.put("birthdate", "2010-01-01"); + parms1.put("validFor", "1d"); + parms1.put("zone", "A"); + parms1.put("student", false); + 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); + + //child and 30d ticket + parms1.clear(); + parms1.put("birthdate", "2010-01-01"); + parms1.put("validFor", "30d"); + parms1.put("zone", "A"); + parms1.put("student", false); + 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); + + //student and 1h ticket + parms1.clear(); + parms1.put("birthdate", "1997-01-01"); + 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(200); - - + .body(parms1).when().post("/tickets").then().statusCode(400); + + //student and not a student ticket => does not matter since he/she can buy an adult ticket + parms1.clear(); + parms1.put("birthdate", "1997-01-01"); + 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); } @@ -103,7 +168,7 @@ public class TicketTest { 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(200); + .body(parms).when().post(path).then().statusCode(403); //200//ä¿¡æ¯ä¸€è‡´ï¼Œä¸”有效期内 @@ -112,7 +177,7 @@ public class TicketTest { parms.put("ticketId", ticketId); parms.put("birthdate", "1992-01-01"); parms.put("zone", "A"); - parms.put("student", true); + parms.put("student", false); parms.put("disabled", true); parms.put("date", "2022-05-20 12:00:00"); RestAssured.given().header("content-Type", "application/json").and() -- GitLab