Tests complete

This commit is contained in:
2024-07-19 17:52:30 +01:00
parent 5bb6ccb789
commit 97773c7b01
16 changed files with 37 additions and 81 deletions

View File

@@ -1,4 +1,4 @@
package api
package org.example.api
import com.google.gson.GsonBuilder
import okhttp3.OkHttpClient

View File

@@ -1,6 +1,6 @@
package api
package org.example.api
import model.*
import org.example.model.*
import retrofit2.Response
import retrofit2.http.*

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class AuthRequest(
val username: String,

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class AuthResponse (
val token: String

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class BookingIdResponse(
val bookingid: Int

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class BookingRequest (
var firstname: String,

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class BookingResponse(

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class Bookingdates (
var checkin: String,

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class CreateBookingResponse(
var bookingid: Int,

View File

@@ -1,4 +1,4 @@
package model
package org.example.model
data class UpdateBookingRequest(
var firstname: String? = null,

View File

@@ -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>()

View File

@@ -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">

View File

@@ -1,3 +1,5 @@
package org.example
import kotlinx.coroutines.runBlocking
import retrofit2.Response
import java.io.IOException

View File

@@ -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()
}
}

View File

@@ -1,4 +1,4 @@
package utils
package org.example.utils
import com.google.gson.Gson
import java.io.BufferedReader

View File

@@ -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>