mirror of
https://github.com/hmalik144/api-testing-automation-framework.git
synced 2025-12-10 02:55:21 +00:00
Tests complete
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package api
|
package org.example.api
|
||||||
|
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package api
|
package org.example.api
|
||||||
|
|
||||||
import model.*
|
import org.example.model.*
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import retrofit2.http.*
|
import retrofit2.http.*
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class AuthRequest(
|
data class AuthRequest(
|
||||||
val username: String,
|
val username: String,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class AuthResponse (
|
data class AuthResponse (
|
||||||
val token: String
|
val token: String
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class BookingIdResponse(
|
data class BookingIdResponse(
|
||||||
val bookingid: Int
|
val bookingid: Int
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class BookingRequest (
|
data class BookingRequest (
|
||||||
var firstname: String,
|
var firstname: String,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
|
|
||||||
data class BookingResponse(
|
data class BookingResponse(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class Bookingdates (
|
data class Bookingdates (
|
||||||
var checkin: String,
|
var checkin: String,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class CreateBookingResponse(
|
data class CreateBookingResponse(
|
||||||
var bookingid: Int,
|
var bookingid: Int,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package org.example.model
|
||||||
|
|
||||||
data class UpdateBookingRequest(
|
data class UpdateBookingRequest(
|
||||||
var firstname: String? = null,
|
var firstname: String? = null,
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package storage
|
package org.example.storage
|
||||||
|
|
||||||
import model.BookingResponse
|
import org.example.model.BookingResponse
|
||||||
import model.Bookingdates
|
import org.example.model.Bookingdates
|
||||||
|
|
||||||
class OrdersDatabase {
|
class OrdersDatabase {
|
||||||
private val storage = mutableMapOf<Int, BookingResponse>()
|
private val storage = mutableMapOf<Int, BookingResponse>()
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Configuration status="warn">
|
<Configuration status="warn">
|
||||||
<Properties>
|
<Properties>
|
||||||
<Property name="basePath">C:\\logs</Property>
|
<Property name="basePath">Classpath</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Appenders>
|
<Appenders>
|
||||||
<RollingFile name="fileLogger" fileName="${basePath}/app-info.html"
|
<RollingFile name="fileLogger" fileName="${basePath}/app-info.html"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</Console>
|
</Console>
|
||||||
</Appenders>
|
</Appenders>
|
||||||
<Loggers>
|
<Loggers>
|
||||||
<Logger name="com.howtodoinjava" level="debug" additivity="false">
|
<Logger name="org.example" level="debug" additivity="false">
|
||||||
<appender-ref ref="fileLogger" level="debug" />
|
<appender-ref ref="fileLogger" level="debug" />
|
||||||
</Logger>
|
</Logger>
|
||||||
<Root level="debug" additivity="false">
|
<Root level="debug" additivity="false">
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
package org.example
|
||||||
|
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -1,22 +1,17 @@
|
|||||||
import api.BookerApi
|
package org.example
|
||||||
import api.RestfulBookerApi
|
|
||||||
import model.AuthRequest
|
import org.example.api.BookerApi
|
||||||
import model.BookingRequest
|
import org.example.api.RestfulBookerApi
|
||||||
import model.Bookingdates
|
import org.example.model.AuthRequest
|
||||||
import model.UpdateBookingRequest
|
import org.example.model.BookingRequest
|
||||||
import net.sf.jasperreports.engine.JasperCompileManager
|
import org.example.model.Bookingdates
|
||||||
import net.sf.jasperreports.engine.JasperFillManager
|
import org.example.model.UpdateBookingRequest
|
||||||
import net.sf.jasperreports.engine.JasperReport
|
|
||||||
import net.sf.jasperreports.engine.export.HtmlExporter
|
|
||||||
import net.sf.jasperreports.engine.util.JRSaver
|
|
||||||
import net.sf.jasperreports.export.SimpleHtmlExporterOutput
|
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import org.apache.logging.log4j.message.MessageFormatMessage
|
import org.apache.logging.log4j.message.MessageFormatMessage
|
||||||
import org.assertj.core.api.AssertionsForClassTypes.assertThat
|
import org.assertj.core.api.AssertionsForClassTypes.assertThat
|
||||||
import org.junit.jupiter.api.*
|
import org.junit.jupiter.api.*
|
||||||
import storage.OrdersDatabase
|
import org.example.storage.OrdersDatabase
|
||||||
import utils.FileReader
|
import org.example.utils.FileReader
|
||||||
import java.io.InputStream
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
@@ -26,10 +21,7 @@ class Tests : NetworkTests() {
|
|||||||
companion object {
|
companion object {
|
||||||
private lateinit var bookerApi: RestfulBookerApi
|
private lateinit var bookerApi: RestfulBookerApi
|
||||||
private val fileReader = FileReader()
|
private val fileReader = FileReader()
|
||||||
private val logger = LogManager.getLogger("Test")
|
private val logger = LogManager.getLogger(Tests::javaClass)
|
||||||
|
|
||||||
val bookingsReportStream: InputStream = javaClass.getResourceAsStream("/bookingsReport.jrxml")
|
|
||||||
val jasperReport: JasperReport = JasperCompileManager.compileReport(bookingsReportStream)
|
|
||||||
|
|
||||||
private val storage = OrdersDatabase()
|
private val storage = OrdersDatabase()
|
||||||
|
|
||||||
@@ -49,8 +41,6 @@ class Tests : NetworkTests() {
|
|||||||
@JvmStatic
|
@JvmStatic
|
||||||
internal fun afterAll() {
|
internal fun afterAll() {
|
||||||
storage.clearAllData()
|
storage.clearAllData()
|
||||||
|
|
||||||
JRSaver.saveObject(jasperReport, "bookingReport.jasper");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,13 +79,13 @@ class Tests : NetworkTests() {
|
|||||||
/*
|
/*
|
||||||
* Then
|
* Then
|
||||||
*/
|
*/
|
||||||
val bookingIds = responseUnwrap { bookerApi.getBookingIds() }
|
val bookingIdsResponse = responseUnwrap { bookerApi.getBookingIds() }
|
||||||
assertThat(bookingIds.size)
|
assertThat(bookingIdsResponse.size)
|
||||||
.withFailMessage("Did not find 3 bookings")
|
.withFailMessage("Did not find 3 bookings")
|
||||||
.isGreaterThanOrEqualTo(3)
|
.isGreaterThanOrEqualTo(3)
|
||||||
|
val bookingIds = bookingIdsResponse.map { it.bookingid }.joinToString()
|
||||||
|
|
||||||
JasperFillManager.
|
logger.info("Available booking IDs: $bookingIds")
|
||||||
logger.trace("Available booking IDs: ${bookingIds.joinToString()}")
|
|
||||||
|
|
||||||
// Add the booking details and idea for later
|
// Add the booking details and idea for later
|
||||||
bookingResponses.forEach { response ->
|
bookingResponses.forEach { response ->
|
||||||
@@ -178,14 +168,14 @@ class Tests : NetworkTests() {
|
|||||||
/*
|
/*
|
||||||
* Then
|
* Then
|
||||||
*/
|
*/
|
||||||
logger.trace(
|
logger.info(
|
||||||
MessageFormatMessage(
|
MessageFormatMessage(
|
||||||
"Booking with ID: {0} has been updated to the following: {1}",
|
"Booking with ID: {0} has been updated to the following: {1}",
|
||||||
orderIdTestOne,
|
orderIdTestOne,
|
||||||
updateTestOneResponse
|
updateTestOneResponse
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
logger.trace(
|
logger.info(
|
||||||
MessageFormatMessage(
|
MessageFormatMessage(
|
||||||
"Booking with ID: {0} has been updated to the following: {1}",
|
"Booking with ID: {0} has been updated to the following: {1}",
|
||||||
orderIdTestTwo,
|
orderIdTestTwo,
|
||||||
@@ -215,7 +205,7 @@ class Tests : NetworkTests() {
|
|||||||
/*
|
/*
|
||||||
* Then
|
* Then
|
||||||
*/
|
*/
|
||||||
logger.trace(
|
logger.info(
|
||||||
MessageFormatMessage(
|
MessageFormatMessage(
|
||||||
"Booking with ID: {0} has been delete and given the following response: {1}",
|
"Booking with ID: {0} has been delete and given the following response: {1}",
|
||||||
idOfAny,
|
idOfAny,
|
||||||
@@ -238,13 +228,5 @@ class Tests : NetworkTests() {
|
|||||||
/*
|
/*
|
||||||
* Then
|
* Then
|
||||||
*/
|
*/
|
||||||
val exporter = HtmlExporter()
|
|
||||||
|
|
||||||
// Set input ...
|
|
||||||
|
|
||||||
// Set input ...
|
|
||||||
exporter.exporterOutput = SimpleHtmlExporterOutput("bookingsReport.html")
|
|
||||||
|
|
||||||
exporter.exportReport()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package utils
|
package org.example.utils
|
||||||
|
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<jasperReport>
|
|
||||||
<field name="FIRST_NAME" class="java.lang.String"/>
|
|
||||||
<field name="LAST_NAME" class="java.lang.String"/>
|
|
||||||
<field name="SALARY" class="java.lang.Double"/>
|
|
||||||
<field name="ID" class="java.lang.Integer"/>
|
|
||||||
<detail>
|
|
||||||
<band height="51" splitType="Stretch">
|
|
||||||
<textField>
|
|
||||||
<reportElement x="0" y="0" width="100" height="20"/>
|
|
||||||
<textElement/>
|
|
||||||
<textFieldExpression class="java.lang.String">
|
|
||||||
<![CDATA[$F{FIRST_NAME}]]></textFieldExpression>
|
|
||||||
</textField>
|
|
||||||
<textField>
|
|
||||||
<reportElement x="100" y="0" width="100" height="20"/>
|
|
||||||
<textElement/>
|
|
||||||
<textFieldExpression class="java.lang.String">
|
|
||||||
<![CDATA[$F{LAST_NAME}]]></textFieldExpression>
|
|
||||||
</textField>
|
|
||||||
<textField>
|
|
||||||
<reportElement x="200" y="0" width="100" height="20"/>
|
|
||||||
<textElement/>
|
|
||||||
<textFieldExpression class="java.lang.String">
|
|
||||||
<![CDATA[$F{SALARY}]]></textFieldExpression>
|
|
||||||
</textField>
|
|
||||||
</band>
|
|
||||||
</detail>
|
|
||||||
</jasperReport>
|
|
||||||
Reference in New Issue
Block a user