Best Kotest code snippet using io.kotest.assertions.json.resources
JsonSerializeVerifiableCredentialTest.kt
Source:JsonSerializeVerifiableCredentialTest.kt
...10import io.kotest.matchers.shouldBe11import java.io.File12import java.time.LocalDateTime13class JsonSerializeVerifiableCredentialTest : AnnotationSpec() {14 val VC_PATH = "src/test/resources/verifiable-credentials"15 val format = Klaxon()16 @Test17 fun vcTemplatesTest() {18 File("templates/").walkTopDown()19 .filter { it.toString().endsWith(".json") }20 .forEach {21 println("serializing: $it")22 val input = File(it.toURI()).readText().replace("\\s".toRegex(), "")23 val vc = input.toCredential()24 when (vc) {25 is Europass -> println("\t => Europass serialized")26 is PermanentResidentCard -> {27 println("\t => PermanentResidentCard serialized")28 val enc = Klaxon().toJsonString(vc)...
TestHelpers.kt
Source:TestHelpers.kt
...21object TestHelpers {22 private const val OPEN_API_ENDPOINT = "/openapi.json"23 const val DEFAULT_TEST_ENDPOINT = "/test"24 fun getFileSnapshot(fileName: String): String {25 val snapshotPath = "src/test/resources"26 val file = File("$snapshotPath/$fileName")27 return file.readText()28 }29 /**30 * Performs the baseline expected tests on an OpenAPI result. Confirms that the endpoint31 * exists as expected, and that the content matches the expected blob found in the specified file32 * @param snapshotName The snapshot file to retrieve from the resources folder33 */34 fun TestApplicationEngine.compareOpenAPISpec(snapshotName: String) {35 // act36 handleRequest(HttpMethod.Get, OPEN_API_ENDPOINT).apply {37 // assert38 response shouldHaveStatus HttpStatusCode.OK39 response.content shouldNotBe null40 response.content!! shouldEqualJson getFileSnapshot(snapshotName)41 }42 }43 /**44 * This will take a provided JSON snapshot file, retrieve it from the resource folder,45 * and build a test ktor server to compare the expected output with the output found in the default46 * OpenAPI json endpoint. By default, this will run the same test with Gson, Kotlinx, and Jackson serializers47 * @param snapshotName The snapshot file to retrieve from the resources folder48 * @param moduleFunction Initializer for the application to allow tests to pass the required Ktor modules49 */50 fun openApiTestAllSerializers(snapshotName: String, moduleFunction: Application.() -> Unit) {51 openApiTestAllSerializers(snapshotName, moduleFunction) {}52 }53 fun openApiTestAllSerializers(54 snapshotName: String, moduleFunction: Application.() -> Unit,55 kompendiumConfigurer: Kompendium.Configuration.() -> Unit56 ) {57 openApiTest(snapshotName, SupportedSerializer.KOTLINX, moduleFunction, kompendiumConfigurer)58 openApiTest(snapshotName, SupportedSerializer.JACKSON, moduleFunction, kompendiumConfigurer)59 openApiTest(snapshotName, SupportedSerializer.GSON, moduleFunction, kompendiumConfigurer)60 }61 private fun openApiTest(...
ConfigureBaseDependenciesAction.kt
Source:ConfigureBaseDependenciesAction.kt
1package ru.itbasis.gradle.backend.actions2import io.spring.gradle.dependencymanagement.DependencyManagementPlugin3import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension4import org.gradle.api.Action5import org.gradle.api.Project6import org.gradle.api.artifacts.DependencyResolveDetails7import org.gradle.kotlin.dsl.apply8import org.gradle.kotlin.dsl.dependencies9import org.gradle.kotlin.dsl.extra10import org.gradle.kotlin.dsl.maven11import org.gradle.kotlin.dsl.repositories12import org.gradle.kotlin.dsl.the13import org.springframework.boot.gradle.plugin.SpringBootPlugin14import ru.itbasis.gradle.backend.utils.getAllPropertiesFromResources15import ru.itbasis.gradle.backend.utils.putExtraKeys16class ConfigureBaseDependenciesAction : Action<Project> {17 override fun execute(target: Project): Unit = target.run {18 apply<DependencyManagementPlugin>()19 putExtraKeys(this@ConfigureBaseDependenciesAction.getAllPropertiesFromResources(propFileName = "versions.properties"))20 the<DependencyManagementExtension>().apply {21 imports {22 mavenBom(SpringBootPlugin.BOM_COORDINATES)23 }24 }25 repositories {26 maven(url = "https://dl.bintray.com/serpro69/maven/")27 maven(url = "https://dl.bintray.com/serpro69/maven-release-candidates/")28 maven(url = "https://kotlin.bintray.com/kotlinx")29 }30 configureResolutionStrategy(target = project)31 configureDependencies(target = project)32 }33 private fun configureResolutionStrategy(target: Project): Unit = target.run {34 @Suppress("ktNoinlineFunc")35 fun DependencyResolveDetails.useExtraVersion(key: String): Unit = useVersion(extra["${key}.version"] as String)36 configurations.all {37 resolutionStrategy {38 failOnVersionConflict()39 preferProjectModules()40 eachDependency {41 when (requested.group) {42 "io.github.microutils" -> useExtraVersion("microutils-logging")43 "org.slf4j" -> useExtraVersion("slf4j")44 "ch.qos.logback" -> useExtraVersion("logback")45 "io.kotest" -> useExtraVersion("kotest")46 "io.mockk" -> useExtraVersion("mockk")47 "io.github.serpro69" -> useExtraVersion("kotlin-faker")48 "commons-codec" -> useExtraVersion("commons-codec")49 "io.ktor" -> useExtraVersion("ktor")50 "org.koin" -> useExtraVersion("koin")51 "org.kodein.di" -> useExtraVersion("kodein-di")52 "org.jetbrains.kotlin" -> useExtraVersion("kotlin")53 "org.jetbrains.exposed" -> useExtraVersion("exposed")54 "org.jetbrains.kotlinx" -> when {55 requested.name.startsWith("kotlinx-coroutines") -> useExtraVersion("kotlinx-coroutines")56 requested.name.startsWith("kotlinx-serialization") -> useExtraVersion("kotlinx-serialization")57 requested.name.startsWith("kotlinx-html") -> useExtraVersion("kotlinx-html")58 requested.name.startsWith("kotlinx-datetime") -> useExtraVersion("kotlinx-datetime")59 }60 "org.webjars" -> when (requested.name) {61 "swagger-ui" -> useExtraVersion("webjars-swagger")62 }63 "com.fasterxml.jackson" -> useExtraVersion("jackson")64 "com.fasterxml.jackson.core" -> useExtraVersion("jackson")65 "com.fasterxml.jackson.datatype" -> useExtraVersion("jackson")66 "com.fasterxml.jackson.module" -> useExtraVersion("jackson")67 "com.fasterxml.jackson.dataformat" -> useExtraVersion("jackson")68 }69 }70 }71 }72 }73 private fun configureDependencies(target: Project): Unit = target.run {74 dependencies {75 "implementation"("org.jetbrains.kotlinx:kotlinx-datetime")76 "testImplementation"("ch.qos.logback:logback-classic")77 "testImplementation"("io.kotest:kotest-runner-junit5")78 "testImplementation"("io.kotest:kotest-extensions-junit5")79 "testImplementation"("io.kotest:kotest-property")80 "testImplementation"("io.kotest:kotest-assertions-core")81 "testImplementation"("io.kotest:kotest-assertions-kotlinx-time")82 "testImplementation"("io.kotest:kotest-assertions-json")83 "testImplementation"("io.github.serpro69:kotlin-faker")84 "testImplementation"("io.mockk:mockk")85 }86 }87}...
build.gradle.kts
Source:build.gradle.kts
...54sourceSets {55 create("testIntegration") {56 withConvention(org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet::class) {57 kotlin.srcDir("src/testIntegration/kotlin")58 resources.srcDir("src/testIntegration/resources")59 compileClasspath += sourceSets["main"].output + configurations["testRuntimeClasspath"]60 runtimeClasspath += output + compileClasspath + sourceSets["test"].runtimeClasspath61 }62 }63}64tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {65 kotlinOptions {66 jvmTarget = "11"67 }68}69tasks.withType<Test> {70 useJUnitPlatform()71}72task<Test>("testIntegration") {...
KeyCommandTest.kt
Source:KeyCommandTest.kt
...40 val key = KeyService.getService().generate(KeyAlgorithm.EdDSA_Ed25519)41 ExportKeyCommand().parse(listOf(key.id))42 }43 "key import Ed25519 priv key JWK" {44 ImportKeyCommand().parse(listOf("src/test/resources/cli/privKeyEd25519Jwk.json"))45 KeyService.getService().delete("45674a4ac169f7f4716804393d20480138a")46 }47 "key import Ed25519 pub key JWK" {48 ImportKeyCommand().parse(listOf("src/test/resources/cli/pubKeyEd25519Jwk.json"))49 KeyService.getService().delete("12374a4ac169f7f4716804393d20480138a")50 }51// Import in PEM format currently not supported52// "key import Ed25519 priv key PEM" {53// ImportKeyCommand().parse(listOf("src/test/resources/cli/privKeyEd25519Pem.txt", "src/test/resources/cli/pubKeyEd25519Pem.txt"))54// }55//56// "key import Ed25519 pub key PEM" {57// ImportKeyCommand().parse(listOf("src/test/resources/cli/pubKeyEd25519Pem.txt"))58// }59})...
CliTests.kt
Source:CliTests.kt
...13 }14 }15 test("Signature check") {16 captureStandardOut {17 cli.parse(listOf("-s", "src/test/resources/script"))18 } shouldBe "7ea951abc0ddc97f549f41a5670b06aa513b30e189050159f40e207cfe502b02\n"19 }20 test("Multiple resources output signatures") {21 captureStandardOut {22 cli.parse(listOf("-s", "src/test/resources/script", "src/test/resources/script2", "src/test/resources/view"))23 } shouldBe """24 7ea951abc0ddc97f549f41a5670b06aa513b30e189050159f40e207cfe502b0225 aa5f6ff86772d32ddad86da18914f835769ccd49e3603e8aea63f5b2fcaf7b0826 1f2e193ab0b2be15cef750b100bf5c6906b7a92fbb5e7c4f8fb7b68e83b4eb8927 """.trimIndent() + "\n"28 }29 test("Single resource update") {30 captureStandardOut {31 cli.parse(listOf("src/test/resources/script", "--actor", "test", "--timestamp", "2022-05-27T16:47:43Z"))32 } shouldBe33 javaClass.getResourceAsStream("/script2/resource.json").shouldNotBeNull().bufferedReader().readText() + "\n"34 }35})...
GitHubMetricConverterSpec.kt
Source:GitHubMetricConverterSpec.kt
...16class GitHubMetricConverterSpec : StringSpec() {17 override fun listeners(): List<TestListener> = listOf(DbSetupListener)18 init {19 "converts the JSON data to GitHubMetric and persists it in the database" {20 val userInfoData: String = File("./resources/github-user-info.json").readText(Charsets.UTF_8)21 val gitHubUserInfo = GitHubUserInfo.deserializeFromJson2(userInfoData).value().fix().unsafeRunSync()22 transaction {23 addLogger(StdOutSqlLogger)24 val aPerson: Person = Factories.addPerson()25 aPerson.id.value shouldBe 126 val result = gitHubUserInfo.flatMap { gitHubUserInfoValue ->27 GitHubMetricConverter.convertAndSaveData(gitHubUserInfoValue, aPerson).value().fix().unsafeRunSync()28 }29 result.shouldBeRight()30 rollback()31 }32 }33 }34}...
ModelsSpec.kt
Source:ModelsSpec.kt
...9import io.kotest.matchers.string.startWith10import java.io.File11class ModelsSpec : StringSpec({12 "can deserialize a UserInfo from json string" {13 val userInfoData: String = File("./resources/github-user-info.json").readText(Charsets.UTF_8)14 val userInfo = GitHubUserInfo.deserializeFromJson(userInfoData)15 userInfo.map { it.username shouldBe "adomokos" }16 }17 "won't work with invalid data" {18 val exception = shouldThrow<KlaxonException> {19 GitHubUserInfo.deserializeFromJson("something")20 }21 exception.message should startWith("Unexpected character at position 0: 's'")22 }23 "can deserialize a UserInfo from json string with Either returned type" {24 val userInfoData: String = File("./resources/github-user-info.json").readText(Charsets.UTF_8)25 val userInfo = GitHubUserInfo.deserializeFromJson2(userInfoData).value().fix().unsafeRunSync()26 userInfo.map { it.username shouldBe "adomokos" }27 }28 "returns Left if any error occurs" {29 val userInfo =30 GitHubUserInfo.deserializeFromJson2("something").value().fix().unsafeRunSync()31 userInfo shouldBe Left(AppError.JSONDeserializationError)32 }33})...
resources
Using AI Code Generation
1 import io.kotest.assertions.json.*2 import io.kotest.assertions.*3 import io.kotest.assertions.arrow.core.*4 import io.kotest.assertions.arrow.fx.*5 import io.kotest.assertions.arrow.optics.*6 import io.kotest.assertions.arrow.*7 import io.kotest.assertions.collections.*8 import io.kotest.assertions.timing.*9 import io.kotest.assertions.either.*10 import io.kotest.assertions.ktor.*11 import io.kotest.assertions.ktor.server.*12 import io.kotest.assertions.ktor.server.engine.*13 import io.kotest.assertions.ktor.server.netty.*14 import io.kotest.assertions.ktor.server.servlet.*15 import io.kotest.assertions.ktor.server.testing.*16 import io.kotest.assertions.ktor.utils.*17 import io.kot
resources
Using AI Code Generation
1 import io.kotest.assertions.json.json2 import io.kotest.assertions.json.shouldMatchJson3 import io.kotest.assertions.json.json4 import io.kotest.assertions.json.shouldMatchJson5 import io.kotest.assertions.json.json6 import io.kotest.assertions.json.shouldMatchJson7 import io.kotest.assertions.json.json8 import io.kotest.assertions.json.shouldMatchJson9 import io.kotest.assertions.json.json10 import io.kotest.assertions.json.shouldMatchJson11 import io.kotest.assertions.json.json12 import io.kotest.assertions.json.shouldMatchJson13 import io.kotest.assertions.json.json14 import io.kotest.assertions.json.shouldMatchJson15 import io.kotest.assertions.json.json16 import io.kotest.assertions.json.shouldMatchJson17 import io.kotest.assertions.json.json18 import io.kotest.assertions.json.shouldMatchJson19 import io.kotest.assertions.json.json20 import io.kotest.assertions.json.shouldMatchJson21 import io.kotest.assertions.json.json22 import io.kotest.assertions.json.shouldMatchJson23 import io.kotest.assertions.json.json24 import io.kotest.assertions.json.shouldMatchJson25 import io.kotest
resources
Using AI Code Generation
1import io.kotest.assertions.json.JsonNode2import io.kotest.assertions.json.JsonNode.*3import io.kotest.assertions.json.JsonType4import io.kotest.assertions.json.JsonType.*5import io.kotest.assertions.json.JsonType.Companion.typeOf6import io.kotest.as
resources
Using AI Code Generation
1val json = """{ "name": "kotest", "count": 5 }"""2JsonAssertions.shouldMatchJson(json, """{"name": "kotest", "count": 5}""")3JsonAssertions.shouldNotMatchJson(json, """{"name": "kotest", "count": 6}""")4JsonAssertions.shouldMatchJson(json, """{"name": "kotest", "count": 5}""")5JsonAssertions.shouldNotMatchJson(json, """{"name": "kotest", "count": 6}""")6import io.kotest.assertions.json.shouldMatchJson7import io.kotest.assertions.json.shouldNotMatchJson8val json = """{ "name": "kotest", "count": 5 }"""9json shouldMatchJson """{"name": "kotest", "count": 5}"""10json shouldNotMatchJson """{"name": "kotest", "count": 6}"""11val json = """{ "name": "kotest", "count": 5 }"""12json shouldMatchJson """{"name": "kotest", "count": 5}"""13json shouldNotMatchJson """{"name": "kotest", "count": 6}"""14import io.kotest.assertions.json.shouldMatchJson15import io.kotest.assertions.json.shouldNotMatchJson16val json = """{ "name": "kotest", "count": 5 }"""17json shouldMatchJson """{"name": "kotest", "count": 5}"""18json shouldNotMatchJson """{"name": "kotest", "count": 6}"""19val json = """{ "name": "kotest", "count": 5 }"""20json shouldMatchJson """{"name": "kotest", "count": 5}"""21json shouldNotMatchJson """{"name": "kotest", "count": 6}"""22import io.kotest.assertions.json.shouldMatchJson23import io.kotest.assertions.json.shouldNotMatchJson24val json = """{ "name": "kotest", "count": 5 }"""25json shouldMatchJson """{"name": "kotest", "count": 5}"""26json shouldNotMatchJson """{"name": "kotest", "count": 6}"""
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!