From e17b0adf29802c41b43a5f9dd67ac7386e152f78 Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:45:40 +0530 Subject: [PATCH 1/7] Create hotel-Management.feature --- src/test/resources/hotel-Management.feature | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/resources/hotel-Management.feature diff --git a/src/test/resources/hotel-Management.feature b/src/test/resources/hotel-Management.feature new file mode 100644 index 0000000..906d1be --- /dev/null +++ b/src/test/resources/hotel-Management.feature @@ -0,0 +1,26 @@ +Feature: Hotel Management System + + Scenario: Display available features for each room type + Given the hotel management system is running + When the user requests room features for "Luxury Double Room" + Then the system should display details for "Luxury Double Room" + + Scenario: Display room availability + Given the hotel management system is running + When the user requests room availability for "Deluxe Single Room" + Then the system should display number of available "Deluxe Single Room" + + Scenario: Book a room + Given the hotel management system is running + When the user books a "Luxury Single Room" with name "Alice", contact "1111111", gender "F" + Then the booking should be successful + + Scenario: Order food for a room + Given a "Luxury Single Room" is booked with room number 31 + When the user orders "Sandwich" quantity "2" for room number 31 + Then the food order should be added to the room bill + + Scenario: Checkout from room + Given a "Luxury Single Room" is booked and food has been ordered + When the user checks out from room number 31 + Then the system should deallocate the room and display the total bill From 050484946e93fb4761a64008c60edbf61ed005d6 Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:47:01 +0530 Subject: [PATCH 2/7] Create HotelManagement.java --- src/test/java/HotelManagement.java | 70 ++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/test/java/HotelManagement.java diff --git a/src/test/java/HotelManagement.java b/src/test/java/HotelManagement.java new file mode 100644 index 0000000..d50f567 --- /dev/null +++ b/src/test/java/HotelManagement.java @@ -0,0 +1,70 @@ +import io.cucumber.java.en.*; +import static org.junit.Assert.*; + +public class HotelManagementSteps { + + @Given("the hotel management system is running") + public void the_hotel_management_system_is_running() { + // Initialize or mock the Hotel system + } + + @When("the user requests room features for {string}") + public void the_user_requests_room_features_for(String roomType) { + // Call Hotel.features() with correct type + } + + @Then("the system should display details for {string}") + public void the_system_should_display_details_for(String roomType) { + // Validate the output + } + + @When("the user requests room availability for {string}") + public void the_user_requests_room_availability_for(String roomType) { + // Call Hotel.availability() with correct type + } + + @Then("the system should display number of available {string}") + public void the_system_should_display_number_of_available(String roomType) { + // Validate the output or system state + } + + @When("the user books a {string} with name {string}, contact {string}, gender {string}") + public void the_user_books_a_with_details(String roomType, String name, String contact, String gender) { + // Book the room in the Hotel system + } + + @Then("the booking should be successful") + public void the_booking_should_be_successful() { + // Assert the room is booked + } + + @Given("a {string} is booked with room number {int}") + public void a_room_is_booked_with_room_number(String roomType, int roomNumber) { + // Ensure the room is booked in test context + } + + @When("the user orders {string} quantity {string} for room number {int}") + public void the_user_orders_food(String foodItem, String quantity, int roomNo) { + // Add food order to the room + } + + @Then("the food order should be added to the room bill") + public void the_food_order_should_be_added_to_the_room_bill() { + // Check that food order is in bill + } + + @Given("a {string} is booked and food has been ordered") + public void a_room_is_booked_and_food_has_been_ordered(String roomType) { + // Setup room with booking and food + } + + @When("the user checks out from room number {int}") + public void the_user_checks_out_from_room_number(Integer roomNumber) { + // Call Hotel.deallocate() + } + + @Then("the system should deallocate the room and display the total bill") + public void the_system_should_deallocate_the_room_and_display_the_total_bill() { + // Assert deallocation and check bill + } +} From 636fc0f4ef0957bddf565b5691164dc34c179c1e Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:48:35 +0530 Subject: [PATCH 3/7] Update HotelManagement.java --- src/test/java/HotelManagement.java | 141 ++++++++++++++++++++++++++--- 1 file changed, 128 insertions(+), 13 deletions(-) diff --git a/src/test/java/HotelManagement.java b/src/test/java/HotelManagement.java index d50f567..f24263b 100644 --- a/src/test/java/HotelManagement.java +++ b/src/test/java/HotelManagement.java @@ -3,68 +3,183 @@ public class HotelManagementSteps { + private int lastBookedRoomNumber = -1; + private int lastRoomType = -1; + private boolean bookingSuccess = false; + private boolean foodOrdered = false; + private boolean checkoutSuccess = false; + @Given("the hotel management system is running") public void the_hotel_management_system_is_running() { - // Initialize or mock the Hotel system + // Reset the hotel state for testing + Hotel.hotel_ob = new holder(); + bookingSuccess = false; + foodOrdered = false; + checkoutSuccess = false; + lastBookedRoomNumber = -1; + lastRoomType = -1; } @When("the user requests room features for {string}") public void the_user_requests_room_features_for(String roomType) { - // Call Hotel.features() with correct type + Hotel.features(getRoomType(roomType)); } @Then("the system should display details for {string}") public void the_system_should_display_details_for(String roomType) { - // Validate the output + // Would capture output for assertion in a robust test } @When("the user requests room availability for {string}") public void the_user_requests_room_availability_for(String roomType) { - // Call Hotel.availability() with correct type + Hotel.availability(getRoomType(roomType)); } @Then("the system should display number of available {string}") public void the_system_should_display_number_of_available(String roomType) { - // Validate the output or system state + // Would capture output for assertion in a robust test } @When("the user books a {string} with name {string}, contact {string}, gender {string}") public void the_user_books_a_with_details(String roomType, String name, String contact, String gender) { - // Book the room in the Hotel system + int type = getRoomType(roomType); + int roomIndex = getFirstAvailableRoomIndex(type); + if (roomIndex != -1) { + Hotel.CustDetails(type, roomIndex, name, contact, gender, null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomIndex; + lastRoomType = type; + bookingSuccess = true; + } else { + bookingSuccess = false; + } } @Then("the booking should be successful") public void the_booking_should_be_successful() { - // Assert the room is booked + assertTrue("Booking should succeed", bookingSuccess); } @Given("a {string} is booked with room number {int}") public void a_room_is_booked_with_room_number(String roomType, int roomNumber) { - // Ensure the room is booked in test context + int type = getRoomType(roomType); + Hotel.CustDetails(type, roomNumber, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomNumber; + lastRoomType = type; + bookingSuccess = true; } @When("the user orders {string} quantity {string} for room number {int}") public void the_user_orders_food(String foodItem, String quantity, int roomNo) { - // Add food order to the room + int itemNo = getFoodItemNo(foodItem); + int qty = Integer.parseInt(quantity); + // Use type from booking context or default to 3 (Luxury Single Room) + int type = (lastRoomType != -1) ? lastRoomType : 3; + switch (type) { + case 1: + if (Hotel.hotel_ob.luxury_doublerrom[roomNo] != null) + Hotel.hotel_ob.luxury_doublerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 2: + if (Hotel.hotel_ob.deluxe_doublerrom[roomNo] != null) + Hotel.hotel_ob.deluxe_doublerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 3: + if (Hotel.hotel_ob.luxury_singleerrom[roomNo] != null) + Hotel.hotel_ob.luxury_singleerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 4: + if (Hotel.hotel_ob.deluxe_singleerrom[roomNo] != null) + Hotel.hotel_ob.deluxe_singleerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + } + foodOrdered = true; } @Then("the food order should be added to the room bill") public void the_food_order_should_be_added_to_the_room_bill() { - // Check that food order is in bill + assertTrue("Food should be ordered", foodOrdered); } @Given("a {string} is booked and food has been ordered") public void a_room_is_booked_and_food_has_been_ordered(String roomType) { - // Setup room with booking and food + int type = getRoomType(roomType); + int roomIndex = getFirstAvailableRoomIndex(type); + Hotel.CustDetails(type, roomIndex, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomIndex; + lastRoomType = type; + // Add food + switch (type) { + case 1: + Hotel.hotel_ob.luxury_doublerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 2: + Hotel.hotel_ob.deluxe_doublerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 3: + Hotel.hotel_ob.luxury_singleerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 4: + Hotel.hotel_ob.deluxe_singleerrom[roomIndex].food.add(new Food(1, 2)); + break; + } + foodOrdered = true; } @When("the user checks out from room number {int}") public void the_user_checks_out_from_room_number(Integer roomNumber) { - // Call Hotel.deallocate() + if (lastRoomType != -1 && roomNumber != -1) { + Hotel.deallocate(roomNumber, lastRoomType); + checkoutSuccess = true; + } else { + checkoutSuccess = false; + } } @Then("the system should deallocate the room and display the total bill") public void the_system_should_deallocate_the_room_and_display_the_total_bill() { - // Assert deallocation and check bill + assertTrue(checkoutSuccess); + } + + // Utility methods + private int getRoomType(String roomType) { + switch (roomType) { + case "Luxury Double Room": return 1; + case "Deluxe Double Room": return 2; + case "Luxury Single Room": return 3; + case "Deluxe Single Room": return 4; + default: return 1; + } + } + + private int getFirstAvailableRoomIndex(int type) { + switch (type) { + case 1: + for (int i = 0; i < Hotel.hotel_ob.luxury_doublerrom.length; i++) + if (Hotel.hotel_ob.luxury_doublerrom[i] == null) return i; + break; + case 2: + for (int i = 0; i < Hotel.hotel_ob.deluxe_doublerrom.length; i++) + if (Hotel.hotel_ob.deluxe_doublerrom[i] == null) return i; + break; + case 3: + for (int i = 0; i < Hotel.hotel_ob.luxury_singleerrom.length; i++) + if (Hotel.hotel_ob.luxury_singleerrom[i] == null) return i; + break; + case 4: + for (int i = 0; i < Hotel.hotel_ob.deluxe_singleerrom.length; i++) + if (Hotel.hotel_ob.deluxe_singleerrom[i] == null) return i; + break; + } + return -1; + } + + private int getFoodItemNo(String foodName) { + switch (foodName.toLowerCase()) { + case "sandwich": return 1; + case "pasta": return 2; + case "noodles": return 3; + case "coke": return 4; + default: return 1; + } } } From d889955a6236f76983fdfe728a5f0b20f7540501 Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:51:15 +0530 Subject: [PATCH 4/7] Create TestRunner.java --- src/test/java/runner/TestRunner.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/test/java/runner/TestRunner.java diff --git a/src/test/java/runner/TestRunner.java b/src/test/java/runner/TestRunner.java new file mode 100644 index 0000000..e415fd0 --- /dev/null +++ b/src/test/java/runner/TestRunner.java @@ -0,0 +1,14 @@ +import org.junit.runner.RunWith; +import io.cucumber.junit.Cucumber; +import io.cucumber.junit.CucumberOptions; + +@RunWith(Cucumber.class) +@CucumberOptions( + features = "src/test/resources", // Path to your .feature files + glue = "stepdefinitions", // Package containing your step defs (adjust as needed) + plugin = { "pretty", "html:target/cucumber-reports" }, // Reports + monochrome = true +) +public class TestRunner { + // This class remains empty. It is used only as a holder for the above annotations. +} From ea334421d737e85347e7f982cf73551dfcba864d Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:53:07 +0530 Subject: [PATCH 5/7] Create HotelManagement.java --- src/test/java/glue/HotelManagement.java | 185 ++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 src/test/java/glue/HotelManagement.java diff --git a/src/test/java/glue/HotelManagement.java b/src/test/java/glue/HotelManagement.java new file mode 100644 index 0000000..f24263b --- /dev/null +++ b/src/test/java/glue/HotelManagement.java @@ -0,0 +1,185 @@ +import io.cucumber.java.en.*; +import static org.junit.Assert.*; + +public class HotelManagementSteps { + + private int lastBookedRoomNumber = -1; + private int lastRoomType = -1; + private boolean bookingSuccess = false; + private boolean foodOrdered = false; + private boolean checkoutSuccess = false; + + @Given("the hotel management system is running") + public void the_hotel_management_system_is_running() { + // Reset the hotel state for testing + Hotel.hotel_ob = new holder(); + bookingSuccess = false; + foodOrdered = false; + checkoutSuccess = false; + lastBookedRoomNumber = -1; + lastRoomType = -1; + } + + @When("the user requests room features for {string}") + public void the_user_requests_room_features_for(String roomType) { + Hotel.features(getRoomType(roomType)); + } + + @Then("the system should display details for {string}") + public void the_system_should_display_details_for(String roomType) { + // Would capture output for assertion in a robust test + } + + @When("the user requests room availability for {string}") + public void the_user_requests_room_availability_for(String roomType) { + Hotel.availability(getRoomType(roomType)); + } + + @Then("the system should display number of available {string}") + public void the_system_should_display_number_of_available(String roomType) { + // Would capture output for assertion in a robust test + } + + @When("the user books a {string} with name {string}, contact {string}, gender {string}") + public void the_user_books_a_with_details(String roomType, String name, String contact, String gender) { + int type = getRoomType(roomType); + int roomIndex = getFirstAvailableRoomIndex(type); + if (roomIndex != -1) { + Hotel.CustDetails(type, roomIndex, name, contact, gender, null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomIndex; + lastRoomType = type; + bookingSuccess = true; + } else { + bookingSuccess = false; + } + } + + @Then("the booking should be successful") + public void the_booking_should_be_successful() { + assertTrue("Booking should succeed", bookingSuccess); + } + + @Given("a {string} is booked with room number {int}") + public void a_room_is_booked_with_room_number(String roomType, int roomNumber) { + int type = getRoomType(roomType); + Hotel.CustDetails(type, roomNumber, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomNumber; + lastRoomType = type; + bookingSuccess = true; + } + + @When("the user orders {string} quantity {string} for room number {int}") + public void the_user_orders_food(String foodItem, String quantity, int roomNo) { + int itemNo = getFoodItemNo(foodItem); + int qty = Integer.parseInt(quantity); + // Use type from booking context or default to 3 (Luxury Single Room) + int type = (lastRoomType != -1) ? lastRoomType : 3; + switch (type) { + case 1: + if (Hotel.hotel_ob.luxury_doublerrom[roomNo] != null) + Hotel.hotel_ob.luxury_doublerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 2: + if (Hotel.hotel_ob.deluxe_doublerrom[roomNo] != null) + Hotel.hotel_ob.deluxe_doublerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 3: + if (Hotel.hotel_ob.luxury_singleerrom[roomNo] != null) + Hotel.hotel_ob.luxury_singleerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + case 4: + if (Hotel.hotel_ob.deluxe_singleerrom[roomNo] != null) + Hotel.hotel_ob.deluxe_singleerrom[roomNo].food.add(new Food(itemNo, qty)); + break; + } + foodOrdered = true; + } + + @Then("the food order should be added to the room bill") + public void the_food_order_should_be_added_to_the_room_bill() { + assertTrue("Food should be ordered", foodOrdered); + } + + @Given("a {string} is booked and food has been ordered") + public void a_room_is_booked_and_food_has_been_ordered(String roomType) { + int type = getRoomType(roomType); + int roomIndex = getFirstAvailableRoomIndex(type); + Hotel.CustDetails(type, roomIndex, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test + lastBookedRoomNumber = roomIndex; + lastRoomType = type; + // Add food + switch (type) { + case 1: + Hotel.hotel_ob.luxury_doublerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 2: + Hotel.hotel_ob.deluxe_doublerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 3: + Hotel.hotel_ob.luxury_singleerrom[roomIndex].food.add(new Food(1, 2)); + break; + case 4: + Hotel.hotel_ob.deluxe_singleerrom[roomIndex].food.add(new Food(1, 2)); + break; + } + foodOrdered = true; + } + + @When("the user checks out from room number {int}") + public void the_user_checks_out_from_room_number(Integer roomNumber) { + if (lastRoomType != -1 && roomNumber != -1) { + Hotel.deallocate(roomNumber, lastRoomType); + checkoutSuccess = true; + } else { + checkoutSuccess = false; + } + } + + @Then("the system should deallocate the room and display the total bill") + public void the_system_should_deallocate_the_room_and_display_the_total_bill() { + assertTrue(checkoutSuccess); + } + + // Utility methods + private int getRoomType(String roomType) { + switch (roomType) { + case "Luxury Double Room": return 1; + case "Deluxe Double Room": return 2; + case "Luxury Single Room": return 3; + case "Deluxe Single Room": return 4; + default: return 1; + } + } + + private int getFirstAvailableRoomIndex(int type) { + switch (type) { + case 1: + for (int i = 0; i < Hotel.hotel_ob.luxury_doublerrom.length; i++) + if (Hotel.hotel_ob.luxury_doublerrom[i] == null) return i; + break; + case 2: + for (int i = 0; i < Hotel.hotel_ob.deluxe_doublerrom.length; i++) + if (Hotel.hotel_ob.deluxe_doublerrom[i] == null) return i; + break; + case 3: + for (int i = 0; i < Hotel.hotel_ob.luxury_singleerrom.length; i++) + if (Hotel.hotel_ob.luxury_singleerrom[i] == null) return i; + break; + case 4: + for (int i = 0; i < Hotel.hotel_ob.deluxe_singleerrom.length; i++) + if (Hotel.hotel_ob.deluxe_singleerrom[i] == null) return i; + break; + } + return -1; + } + + private int getFoodItemNo(String foodName) { + switch (foodName.toLowerCase()) { + case "sandwich": return 1; + case "pasta": return 2; + case "noodles": return 3; + case "coke": return 4; + default: return 1; + } + } +} From 5bda9197df1d1aa5575630a43514a1d6bde6cbec Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 18:54:28 +0530 Subject: [PATCH 6/7] Update and rename HotelManagement.java to screenshots --- src/test/java/HotelManagement.java | 185 ----------------------------- src/test/java/screenshots | 1 + 2 files changed, 1 insertion(+), 185 deletions(-) delete mode 100644 src/test/java/HotelManagement.java create mode 100644 src/test/java/screenshots diff --git a/src/test/java/HotelManagement.java b/src/test/java/HotelManagement.java deleted file mode 100644 index f24263b..0000000 --- a/src/test/java/HotelManagement.java +++ /dev/null @@ -1,185 +0,0 @@ -import io.cucumber.java.en.*; -import static org.junit.Assert.*; - -public class HotelManagementSteps { - - private int lastBookedRoomNumber = -1; - private int lastRoomType = -1; - private boolean bookingSuccess = false; - private boolean foodOrdered = false; - private boolean checkoutSuccess = false; - - @Given("the hotel management system is running") - public void the_hotel_management_system_is_running() { - // Reset the hotel state for testing - Hotel.hotel_ob = new holder(); - bookingSuccess = false; - foodOrdered = false; - checkoutSuccess = false; - lastBookedRoomNumber = -1; - lastRoomType = -1; - } - - @When("the user requests room features for {string}") - public void the_user_requests_room_features_for(String roomType) { - Hotel.features(getRoomType(roomType)); - } - - @Then("the system should display details for {string}") - public void the_system_should_display_details_for(String roomType) { - // Would capture output for assertion in a robust test - } - - @When("the user requests room availability for {string}") - public void the_user_requests_room_availability_for(String roomType) { - Hotel.availability(getRoomType(roomType)); - } - - @Then("the system should display number of available {string}") - public void the_system_should_display_number_of_available(String roomType) { - // Would capture output for assertion in a robust test - } - - @When("the user books a {string} with name {string}, contact {string}, gender {string}") - public void the_user_books_a_with_details(String roomType, String name, String contact, String gender) { - int type = getRoomType(roomType); - int roomIndex = getFirstAvailableRoomIndex(type); - if (roomIndex != -1) { - Hotel.CustDetails(type, roomIndex, name, contact, gender, null, null, null); // Custom overloaded method for test - lastBookedRoomNumber = roomIndex; - lastRoomType = type; - bookingSuccess = true; - } else { - bookingSuccess = false; - } - } - - @Then("the booking should be successful") - public void the_booking_should_be_successful() { - assertTrue("Booking should succeed", bookingSuccess); - } - - @Given("a {string} is booked with room number {int}") - public void a_room_is_booked_with_room_number(String roomType, int roomNumber) { - int type = getRoomType(roomType); - Hotel.CustDetails(type, roomNumber, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test - lastBookedRoomNumber = roomNumber; - lastRoomType = type; - bookingSuccess = true; - } - - @When("the user orders {string} quantity {string} for room number {int}") - public void the_user_orders_food(String foodItem, String quantity, int roomNo) { - int itemNo = getFoodItemNo(foodItem); - int qty = Integer.parseInt(quantity); - // Use type from booking context or default to 3 (Luxury Single Room) - int type = (lastRoomType != -1) ? lastRoomType : 3; - switch (type) { - case 1: - if (Hotel.hotel_ob.luxury_doublerrom[roomNo] != null) - Hotel.hotel_ob.luxury_doublerrom[roomNo].food.add(new Food(itemNo, qty)); - break; - case 2: - if (Hotel.hotel_ob.deluxe_doublerrom[roomNo] != null) - Hotel.hotel_ob.deluxe_doublerrom[roomNo].food.add(new Food(itemNo, qty)); - break; - case 3: - if (Hotel.hotel_ob.luxury_singleerrom[roomNo] != null) - Hotel.hotel_ob.luxury_singleerrom[roomNo].food.add(new Food(itemNo, qty)); - break; - case 4: - if (Hotel.hotel_ob.deluxe_singleerrom[roomNo] != null) - Hotel.hotel_ob.deluxe_singleerrom[roomNo].food.add(new Food(itemNo, qty)); - break; - } - foodOrdered = true; - } - - @Then("the food order should be added to the room bill") - public void the_food_order_should_be_added_to_the_room_bill() { - assertTrue("Food should be ordered", foodOrdered); - } - - @Given("a {string} is booked and food has been ordered") - public void a_room_is_booked_and_food_has_been_ordered(String roomType) { - int type = getRoomType(roomType); - int roomIndex = getFirstAvailableRoomIndex(type); - Hotel.CustDetails(type, roomIndex, "TestUser", "123456", "M", null, null, null); // Custom overloaded method for test - lastBookedRoomNumber = roomIndex; - lastRoomType = type; - // Add food - switch (type) { - case 1: - Hotel.hotel_ob.luxury_doublerrom[roomIndex].food.add(new Food(1, 2)); - break; - case 2: - Hotel.hotel_ob.deluxe_doublerrom[roomIndex].food.add(new Food(1, 2)); - break; - case 3: - Hotel.hotel_ob.luxury_singleerrom[roomIndex].food.add(new Food(1, 2)); - break; - case 4: - Hotel.hotel_ob.deluxe_singleerrom[roomIndex].food.add(new Food(1, 2)); - break; - } - foodOrdered = true; - } - - @When("the user checks out from room number {int}") - public void the_user_checks_out_from_room_number(Integer roomNumber) { - if (lastRoomType != -1 && roomNumber != -1) { - Hotel.deallocate(roomNumber, lastRoomType); - checkoutSuccess = true; - } else { - checkoutSuccess = false; - } - } - - @Then("the system should deallocate the room and display the total bill") - public void the_system_should_deallocate_the_room_and_display_the_total_bill() { - assertTrue(checkoutSuccess); - } - - // Utility methods - private int getRoomType(String roomType) { - switch (roomType) { - case "Luxury Double Room": return 1; - case "Deluxe Double Room": return 2; - case "Luxury Single Room": return 3; - case "Deluxe Single Room": return 4; - default: return 1; - } - } - - private int getFirstAvailableRoomIndex(int type) { - switch (type) { - case 1: - for (int i = 0; i < Hotel.hotel_ob.luxury_doublerrom.length; i++) - if (Hotel.hotel_ob.luxury_doublerrom[i] == null) return i; - break; - case 2: - for (int i = 0; i < Hotel.hotel_ob.deluxe_doublerrom.length; i++) - if (Hotel.hotel_ob.deluxe_doublerrom[i] == null) return i; - break; - case 3: - for (int i = 0; i < Hotel.hotel_ob.luxury_singleerrom.length; i++) - if (Hotel.hotel_ob.luxury_singleerrom[i] == null) return i; - break; - case 4: - for (int i = 0; i < Hotel.hotel_ob.deluxe_singleerrom.length; i++) - if (Hotel.hotel_ob.deluxe_singleerrom[i] == null) return i; - break; - } - return -1; - } - - private int getFoodItemNo(String foodName) { - switch (foodName.toLowerCase()) { - case "sandwich": return 1; - case "pasta": return 2; - case "noodles": return 3; - case "coke": return 4; - default: return 1; - } - } -} diff --git a/src/test/java/screenshots b/src/test/java/screenshots new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/test/java/screenshots @@ -0,0 +1 @@ + From bd2766fb67378d7681ecda5aba874bf313a2d08e Mon Sep 17 00:00:00 2001 From: jyotidhami774-netizen Date: Fri, 3 Oct 2025 19:00:00 +0530 Subject: [PATCH 7/7] Update and rename Main.java to Pipeline --- Main.java | 588 ------------------------------------------------------ Pipeline | 1 + 2 files changed, 1 insertion(+), 588 deletions(-) delete mode 100755 Main.java create mode 100755 Pipeline diff --git a/Main.java b/Main.java deleted file mode 100755 index 2255c0a..0000000 --- a/Main.java +++ /dev/null @@ -1,588 +0,0 @@ -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Scanner; - -class Food implements Serializable -{ - int itemno; - int quantity; - float price; - - Food(int itemno,int quantity) - { - this.itemno=itemno; - this.quantity=quantity; - switch(itemno) - { - case 1:price=quantity*50; - break; - case 2:price=quantity*60; - break; - case 3:price=quantity*70; - break; - case 4:price=quantity*30; - break; - } - } -} -class Singleroom implements Serializable -{ - String name; - String contact; - String gender; - ArrayList food =new ArrayList<>(); - - - Singleroom() - { - this.name=""; - } - Singleroom(String name,String contact,String gender) - { - this.name=name; - this.contact=contact; - this.gender=gender; - } -} -class Doubleroom extends Singleroom implements Serializable -{ - String name2; - String contact2; - String gender2; - - Doubleroom() - { - this.name=""; - this.name2=""; - } - Doubleroom(String name,String contact,String gender,String name2,String contact2,String gender2) - { - this.name=name; - this.contact=contact; - this.gender=gender; - this.name2=name2; - this.contact2=contact2; - this.gender2=gender2; - } -} -class NotAvailable extends Exception -{ - @Override - public String toString() - { - return "Not Available !"; - } -} - -class holder implements Serializable -{ - Doubleroom luxury_doublerrom[]=new Doubleroom[10]; //Luxury - Doubleroom deluxe_doublerrom[]=new Doubleroom[20]; //Deluxe - Singleroom luxury_singleerrom[]=new Singleroom[10]; //Luxury - Singleroom deluxe_singleerrom[]=new Singleroom[20]; //Deluxe -} - -class Hotel -{ - static holder hotel_ob=new holder(); - static Scanner sc = new Scanner(System.in); - static void CustDetails(int i,int rn) - { - String name, contact, gender; - String name2 = null, contact2 = null; - String gender2=""; - System.out.print("\nEnter customer name: "); - name = sc.next(); - System.out.print("Enter contact number: "); - contact=sc.next(); - System.out.print("Enter gender: "); - gender = sc.next(); - if(i<3) - { - System.out.print("Enter second customer name: "); - name2 = sc.next(); - System.out.print("Enter contact number: "); - contact2=sc.next(); - System.out.print("Enter gender: "); - gender2 = sc.next(); - } - - switch (i) { - case 1:hotel_ob.luxury_doublerrom[rn]=new Doubleroom(name,contact,gender,name2,contact2,gender2); - break; - case 2:hotel_ob.deluxe_doublerrom[rn]=new Doubleroom(name,contact,gender,name2,contact2,gender2); - break; - case 3:hotel_ob.luxury_singleerrom[rn]=new Singleroom(name,contact,gender); - break; - case 4:hotel_ob.deluxe_singleerrom[rn]=new Singleroom(name,contact,gender); - break; - default:System.out.println("Wrong option"); - break; - } - } - - static void bookroom(int i) - { - int j; - int rn; - System.out.println("\nChoose room number from : "); - switch (i) { - case 1: - for(j=0;j60) - System.out.println("Room doesn't exist"); - else if(ch2>40) - Hotel.order(ch2-41,4); - else if(ch2>30) - Hotel.order(ch2-31,3); - else if(ch2>10) - Hotel.order(ch2-11,2); - else if(ch2>0) - Hotel.order(ch2-1,1); - else - System.out.println("Room doesn't exist"); - break; - case 5: - System.out.print("Room Number -"); - ch2 = sc.nextInt(); - if(ch2>60) - System.out.println("Room doesn't exist"); - else if(ch2>40) - Hotel.deallocate(ch2-41,4); - else if(ch2>30) - Hotel.deallocate(ch2-31,3); - else if(ch2>10) - Hotel.deallocate(ch2-11,2); - else if(ch2>0) - Hotel.deallocate(ch2-1,1); - else - System.out.println("Room doesn't exist"); - break; - case 6:break x; - - } - - System.out.println("\nContinue : (y/n)"); - wish=sc.next().charAt(0); - if(!(wish=='y'||wish=='Y'||wish=='n'||wish=='N')) - { - System.out.println("Invalid Option"); - System.out.println("\nContinue : (y/n)"); - wish=sc.next().charAt(0); - } - - }while(wish=='y'||wish=='Y'); - - Thread t=new Thread(new write(Hotel.hotel_ob)); - t.start(); - } - catch(Exception e) - { - System.out.println("Not a valid input"); - } - } -} diff --git a/Pipeline b/Pipeline new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/Pipeline @@ -0,0 +1 @@ +