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 okhttp3.OkHttpClient
|
||||
@@ -1,6 +1,6 @@
|
||||
package api
|
||||
package org.example.api
|
||||
|
||||
import model.*
|
||||
import org.example.model.*
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class AuthRequest(
|
||||
val username: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class AuthResponse (
|
||||
val token: String
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class BookingIdResponse(
|
||||
val bookingid: Int
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class BookingRequest (
|
||||
var firstname: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
|
||||
data class BookingResponse(
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class Bookingdates (
|
||||
var checkin: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class CreateBookingResponse(
|
||||
var bookingid: Int,
|
||||
@@ -1,4 +1,4 @@
|
||||
package model
|
||||
package org.example.model
|
||||
|
||||
data class UpdateBookingRequest(
|
||||
var firstname: String? = null,
|
||||
@@ -1,7 +1,7 @@
|
||||
package storage
|
||||
package org.example.storage
|
||||
|
||||
import model.BookingResponse
|
||||
import model.Bookingdates
|
||||
import org.example.model.BookingResponse
|
||||
import org.example.model.Bookingdates
|
||||
|
||||
class OrdersDatabase {
|
||||
private val storage = mutableMapOf<Int, BookingResponse>()
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="warn">
|
||||
<Properties>
|
||||
<Property name="basePath">C:\\logs</Property>
|
||||
<Property name="basePath">Classpath</Property>
|
||||
</Properties>
|
||||
<Appenders>
|
||||
<RollingFile name="fileLogger" fileName="${basePath}/app-info.html"
|
||||
@@ -17,7 +17,7 @@
|
||||
</Console>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Logger name="com.howtodoinjava" level="debug" additivity="false">
|
||||
<Logger name="org.example" level="debug" additivity="false">
|
||||
<appender-ref ref="fileLogger" level="debug" />
|
||||
</Logger>
|
||||
<Root level="debug" additivity="false">
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
package org.example
|
||||
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import retrofit2.Response
|
||||
import java.io.IOException
|
||||
@@ -1,22 +1,17 @@
|
||||
import api.BookerApi
|
||||
import api.RestfulBookerApi
|
||||
import model.AuthRequest
|
||||
import model.BookingRequest
|
||||
import model.Bookingdates
|
||||
import model.UpdateBookingRequest
|
||||
import net.sf.jasperreports.engine.JasperCompileManager
|
||||
import net.sf.jasperreports.engine.JasperFillManager
|
||||
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
|
||||
package org.example
|
||||
|
||||
import org.example.api.BookerApi
|
||||
import org.example.api.RestfulBookerApi
|
||||
import org.example.model.AuthRequest
|
||||
import org.example.model.BookingRequest
|
||||
import org.example.model.Bookingdates
|
||||
import org.example.model.UpdateBookingRequest
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import org.apache.logging.log4j.message.MessageFormatMessage
|
||||
import org.assertj.core.api.AssertionsForClassTypes.assertThat
|
||||
import org.junit.jupiter.api.*
|
||||
import storage.OrdersDatabase
|
||||
import utils.FileReader
|
||||
import java.io.InputStream
|
||||
import org.example.storage.OrdersDatabase
|
||||
import org.example.utils.FileReader
|
||||
import java.util.*
|
||||
|
||||
|
||||
@@ -26,10 +21,7 @@ class Tests : NetworkTests() {
|
||||
companion object {
|
||||
private lateinit var bookerApi: RestfulBookerApi
|
||||
private val fileReader = FileReader()
|
||||
private val logger = LogManager.getLogger("Test")
|
||||
|
||||
val bookingsReportStream: InputStream = javaClass.getResourceAsStream("/bookingsReport.jrxml")
|
||||
val jasperReport: JasperReport = JasperCompileManager.compileReport(bookingsReportStream)
|
||||
private val logger = LogManager.getLogger(Tests::javaClass)
|
||||
|
||||
private val storage = OrdersDatabase()
|
||||
|
||||
@@ -49,8 +41,6 @@ class Tests : NetworkTests() {
|
||||
@JvmStatic
|
||||
internal fun afterAll() {
|
||||
storage.clearAllData()
|
||||
|
||||
JRSaver.saveObject(jasperReport, "bookingReport.jasper");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,13 +79,13 @@ class Tests : NetworkTests() {
|
||||
/*
|
||||
* Then
|
||||
*/
|
||||
val bookingIds = responseUnwrap { bookerApi.getBookingIds() }
|
||||
assertThat(bookingIds.size)
|
||||
val bookingIdsResponse = responseUnwrap { bookerApi.getBookingIds() }
|
||||
assertThat(bookingIdsResponse.size)
|
||||
.withFailMessage("Did not find 3 bookings")
|
||||
.isGreaterThanOrEqualTo(3)
|
||||
val bookingIds = bookingIdsResponse.map { it.bookingid }.joinToString()
|
||||
|
||||
JasperFillManager.
|
||||
logger.trace("Available booking IDs: ${bookingIds.joinToString()}")
|
||||
logger.info("Available booking IDs: $bookingIds")
|
||||
|
||||
// Add the booking details and idea for later
|
||||
bookingResponses.forEach { response ->
|
||||
@@ -178,14 +168,14 @@ class Tests : NetworkTests() {
|
||||
/*
|
||||
* Then
|
||||
*/
|
||||
logger.trace(
|
||||
logger.info(
|
||||
MessageFormatMessage(
|
||||
"Booking with ID: {0} has been updated to the following: {1}",
|
||||
orderIdTestOne,
|
||||
updateTestOneResponse
|
||||
)
|
||||
)
|
||||
logger.trace(
|
||||
logger.info(
|
||||
MessageFormatMessage(
|
||||
"Booking with ID: {0} has been updated to the following: {1}",
|
||||
orderIdTestTwo,
|
||||
@@ -215,7 +205,7 @@ class Tests : NetworkTests() {
|
||||
/*
|
||||
* Then
|
||||
*/
|
||||
logger.trace(
|
||||
logger.info(
|
||||
MessageFormatMessage(
|
||||
"Booking with ID: {0} has been delete and given the following response: {1}",
|
||||
idOfAny,
|
||||
@@ -238,13 +228,5 @@ class Tests : NetworkTests() {
|
||||
/*
|
||||
* 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 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