@boykaframework/boyka-cli
Version:
🧑🏻💻 Command line assistant for Boyka Framework
132 lines (113 loc) • 5.19 kB
text/typescript
import { TemplateFile } from '../../types/types.js';
export const BookingTest = {
fileName: 'BookingTest.java',
test: true,
folder: 'api',
content: `package {{ groupId }}.api;
import static {{ groupId }}.api.data.BookingRequestData.getBookingData;
import static {{ groupId }}.api.data.BookingRequestData.getPartialBookingData;
import static {{ groupId }}.api.requests.BookingRequest.createBooking;
import static {{ groupId }}.api.requests.BookingRequest.deleteBooking;
import static {{ groupId }}.api.requests.BookingRequest.getBooking;
import static {{ groupId }}.api.requests.BookingRequest.updateBooking;
import static {{ groupId }}.api.requests.BookingRequest.updatePartialBooking;
import static io.github.boykaframework.actions.api.ApiActions.withRequest;
import static io.github.boykaframework.enums.PlatformType.API;
import static io.github.boykaframework.manager.ParallelSession.clearSession;
import static io.github.boykaframework.manager.ParallelSession.createSession;
import static io.github.boykaframework.manager.ParallelSession.getSession;
import {{ groupId }}.api.pojo.BookingData;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class BookingTest {
private static final String BOOKING_ID = "bookingId";
private BookingData newBooking;
(description = "Setup test class")
public void setupTestClass () {
createSession (API, "{{ configName }}");
this.newBooking = getBookingData ();
}
(description = "Tear down test class")
public void tearDownTestClass () {
clearSession ();
}
(description = "Test for creating new booking with POST request")
public void testCreateBooking () {
final var request = createBooking (this.newBooking);
final var response = withRequest (request)
.execute ();
response.verifyStatusCode ()
.isEqualTo (200);
response.verifyStatusMessage ()
.isEqualTo ("OK");
response.verifyTextField ("bookingid")
.isNotNull ();
response.verifyTextField ("booking.firstname")
.isEqualTo (this.newBooking.getFirstname ());
response.verifyBooleanField ("booking.depositpaid")
.isTrue ();
response.verifyHeader ("Content-Type")
.isEqualTo ("application/json; charset=utf-8");
final var bookingId = response.getResponseData ("bookingid");
getSession ().setSharedData (BOOKING_ID, bookingId);
}
(description = "Test for Deleting a booking using DELETE request")
public void testDeleteBooking () {
final var request = deleteBooking (getSession ().getSharedData (BOOKING_ID));
final var response = withRequest (request)
.execute ();
response.verifyStatusCode ()
.isEqualTo (201);
}
(description = "Test for checking deleted booking using GET request")
public void testDeletedBooking () {
final var request = getBooking (getSession ().getSharedData (BOOKING_ID));
final var response = withRequest (request)
.execute ();
response.verifyStatusCode ()
.isEqualTo (404);
}
(description = "Test for retrieving booking using GET request")
public void testGetBooking () {
final var request = getBooking (getSession ().getSharedData (BOOKING_ID));
final var response = withRequest (request).execute ();
response.verifyStatusCode ()
.isEqualTo (200);
response.verifyTextField ("firstname")
.isEqualTo (this.newBooking.getFirstname ());
response.verifyTextField ("lastname")
.isEqualTo (this.newBooking.getLastname ());
}
(description = "Test for Updating booking using PUT request")
public void testUpdateBooking () {
final var updateBookingData = this.newBooking;
final var request = updateBooking (getSession ()
.getSharedData (BOOKING_ID), updateBookingData);
final var response = withRequest (request)
.execute ();
response.verifyStatusCode ()
.isEqualTo (200);
response.verifyTextField ("firstname")
.isEqualTo (updateBookingData.getFirstname ());
response.verifyTextField ("lastname")
.isEqualTo (updateBookingData.getLastname ());
}
(description = "Test for partial updating booking using PATCH request")
public void testUpdatePartialBooking () {
final var partialBookingData = getPartialBookingData ();
final var request = updatePartialBooking (getSession ()
.getSharedData (BOOKING_ID),
partialBookingData);
final var response = withRequest (request)
.execute ();
response.verifyStatusCode ()
.isEqualTo (200);
response.verifyTextField ("firstname")
.isEqualTo (partialBookingData.getFirstname ());
response.verifyIntField ("totalprice")
.isEqualTo (partialBookingData.getTotalprice ());
}
}
`,
} satisfies TemplateFile;