Skip to content

Commit

Permalink
issue 597: Rework unit-test for ExchangeConfig
Browse files Browse the repository at this point in the history
- Increased the number of test cases to cover corner cases.

Signed-off-by: Oleksandr Mordyk <[email protected]>
  • Loading branch information
omordyk committed Oct 31, 2024
1 parent 9e05b3f commit 8d3cee7
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 25 deletions.
25 changes: 0 additions & 25 deletions src/test/scala/org/openhorizon/exchangeapi/ExchConfigSuite.scala

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package org.openhorizon.exchangeapi

import org.scalatest.funsuite.AnyFunSuite
import org.openhorizon.exchangeapi._
import org.openhorizon.exchangeapi.utility.Configuration

import com.typesafe.config.{Config, ConfigFactory}
import org.scalatest.BeforeAndAfterEach

class TestConfiguration extends AnyFunSuite with BeforeAndAfterEach {

override def beforeEach(): Unit = {
Configuration.reload()
}

test("Should load the configuration successfully") {
val config: Config = Configuration.getConfig
assert(config != null)
}

test("Should validate necessary configuration keys") {
val config: Config = Configuration.getConfig
assert(config.hasPath("api"))
assert(config.hasPath("exchange-db-connection"))
}

test ("Should set logback properties correctly") {
val config: Config = Configuration.getConfig
// Extract expected values from the config
val logbackConfigValues = Map(
"log.logback.appenderrefmodelhandler" -> config.getString("logback.core.model.processor.AppenderRefModelHandler"),
"log.logback.loggermodelhandler" -> config.getString("logback.classic.model.processor.LoggerModelHandler"),
"log.hikari.config" -> config.getString("logback.hikari.HikariConfig"),
"log.hikari.datasource" -> config.getString("logback.hikari.HikariDataSource"),
"log.hikari.pool" -> config.getString("logback.hikari.pool.HikariPool"),
"log.hikari.pool.base" -> config.getString("logback.hikari.pool.PoolBase"),
"log.guavacache" -> config.getString("logback.scalacache.guava.GuavaCache"),
"log.action" -> config.getString("logback.slick.basic.BasicBackend.action"),
"log.stream" -> config.getString("logback.slick.basic.BasicBackend.stream"),
"log.qcomp" -> config.getString("logback.slick.compiler-log"),
"log.jdbc.driver" -> config.getString("logback.slick.jdbc.DriverDataSource"),
"log.jdbc.bench" -> config.getString("logback.slick.jdbc.JdbcBackend.benchmark"),
)

logbackConfigValues.foreach { case (key, expectedValue) =>
assert(System.getProperty(key) == expectedValue, "Expected $key to be $expectedValue, but was ${System.getProperty(key)}")
}
}

test ("Allow reloading of configuration") {
val initialConfig: Config = Configuration.getConfig

// Simulate a reload
Configuration.reload()
val reloadedConfig: Config = Configuration.getConfig

// Verify that the config remains the same (or check for specific changes)
assert(initialConfig == reloadedConfig, "Reloaded config should be the same as initial")
}

test ("Should have correct ExchConfig values") {
// Assertions based on the expected values in your config.json
assert(Configuration.getConfig.getInt("api.limits.maxNodes") === 45000)
assert(Configuration.getConfig.getInt("api.limits.maxAgreements") === 0)
assert(Configuration.getConfig.getInt("api.limits.maxMessagesInMailbox") === 0)
assert(Configuration.getConfig.getString("exchange-db-connection.dataSourceClass") === "org.postgresql.ds.PGSimpleDataSource")

// Uncomment if you want to test these as well
// assert(Configuration.getConfig.getInt("api.db.minPoolSize") === 1)
// assert(Configuration.getConfig.getInt("api.db.acquireIncrement") === 1)
// assert(Configuration.getConfig.getInt("api.db.maxPoolSize") === 50)
}
}

0 comments on commit 8d3cee7

Please sign in to comment.