Added test for when the Settings Store is shared

This commit is contained in:
nathan 2020-09-25 19:53:41 +02:00
parent 4fb5ec8517
commit 49eb431da0

View File

@ -15,22 +15,53 @@
*/ */
package dorkboxTest.network package dorkboxTest.network
import dorkbox.network.Client
import dorkbox.network.Server import dorkbox.network.Server
import dorkbox.network.connection.Connection import dorkbox.network.connection.Connection
import dorkbox.network.storage.SettingsStore
import dorkbox.network.storage.types.ChronicleMapStore import dorkbox.network.storage.types.ChronicleMapStore
import dorkbox.network.storage.types.LmdbStore import dorkbox.network.storage.types.LmdbStore
import dorkbox.network.storage.types.MemoryStore import dorkbox.network.storage.types.MemoryStore
import dorkbox.network.storage.types.PropertyStore import dorkbox.network.storage.types.PropertyStore
import kotlinx.coroutines.runBlocking
import mu.KLogger
import org.junit.Assert import org.junit.Assert
import org.junit.Test import org.junit.Test
import java.io.File import java.io.File
class StorageTest : BaseTest() { class StorageTest : BaseTest() {
@Test
fun sharedStoreTest() {
// we want the server + client to have the SAME info
val store = MemoryStore.type().create()
val server = object : Server<Connection>(serverConfig()) {
override fun createSettingsStore(logger: KLogger): SettingsStore {
return store
}
}
val client = object: Client<Connection>(clientConfig()) {
override fun createSettingsStore(logger: KLogger): SettingsStore {
return store
}
}
server.bind()
runBlocking {
client.connect("localhost")
server.close()
}
}
@Test @Test
fun memoryTest() { fun memoryTest() {
val salt1 = MemoryStore.type().create().use { it.getSalt() } val salt1 = MemoryStore.type().create().use { it.getSalt() }
val salt2 = Server<Connection>(serverConfig()).use { it.settingsStore.getSalt() }
val salt3 = Server<Connection>(serverConfig()).use { it.settingsStore.getSalt() } val salt2 = Server<Connection>(serverConfig().apply { settingsStore = MemoryStore.type() }).use { it.settingsStore.getSalt() }
val salt3 = Server<Connection>(serverConfig().apply { settingsStore = MemoryStore.type() }).use { it.settingsStore.getSalt() }
Assert.assertFalse(salt1.contentEquals(salt2)) Assert.assertFalse(salt1.contentEquals(salt2))
Assert.assertFalse(salt1.contentEquals(salt3)) Assert.assertFalse(salt1.contentEquals(salt3))