|
|
@ -1,20 +1,17 @@
|
|
|
|
package org.domaindrivenarchitecture.provs.desktop.application
|
|
|
|
package org.domaindrivenarchitecture.provs.desktop.application
|
|
|
|
|
|
|
|
|
|
|
|
import ch.qos.logback.classic.Level
|
|
|
|
import ch.qos.logback.classic.Level
|
|
|
|
import io.mockk.every
|
|
|
|
import io.mockk.*
|
|
|
|
import io.mockk.mockkStatic
|
|
|
|
|
|
|
|
import io.mockk.unmockkStatic
|
|
|
|
|
|
|
|
import io.mockk.verify
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.configuration.domain.ConfigFileName
|
|
|
|
import org.domaindrivenarchitecture.provs.configuration.domain.ConfigFileName
|
|
|
|
import org.domaindrivenarchitecture.provs.configuration.domain.TargetCliCommand
|
|
|
|
import org.domaindrivenarchitecture.provs.configuration.domain.TargetCliCommand
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.*
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.cli.retrievePassword
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.processors.PrintOnlyProcessor
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.test.setRootLoggingLevel
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.DesktopConfig
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.DesktopConfig
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.WorkplaceType
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.WorkplaceType
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.provisionWorkplace
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.domain.provisionWorkplace
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.infrastructure.getConfig
|
|
|
|
import org.domaindrivenarchitecture.provs.desktop.infrastructure.getConfig
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.*
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.cli.retrievePassword
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.framework.core.processors.PrintOnlyProcessor
|
|
|
|
|
|
|
|
import org.domaindrivenarchitecture.provs.test.setRootLoggingLevel
|
|
|
|
import org.junit.jupiter.api.AfterAll
|
|
|
|
import org.junit.jupiter.api.AfterAll
|
|
|
|
import org.junit.jupiter.api.Assertions.assertEquals
|
|
|
|
import org.junit.jupiter.api.Assertions.assertEquals
|
|
|
|
import org.junit.jupiter.api.BeforeAll
|
|
|
|
import org.junit.jupiter.api.BeforeAll
|
|
|
@ -26,7 +23,6 @@ internal class CliWorkplaceKtTest {
|
|
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
companion object {
|
|
|
|
|
|
|
|
|
|
|
|
val printOnlyProv = Prov.newInstance(PrintOnlyProcessor())
|
|
|
|
|
|
|
|
val testConfig = DesktopConfig(WorkplaceType.MINIMAL, gitUserName = "gittestuser", gitEmail = "git@test.mail")
|
|
|
|
val testConfig = DesktopConfig(WorkplaceType.MINIMAL, gitUserName = "gittestuser", gitEmail = "git@test.mail")
|
|
|
|
val cmd = DesktopCliCommand(
|
|
|
|
val cmd = DesktopCliCommand(
|
|
|
|
ConfigFileName("bla"),
|
|
|
|
ConfigFileName("bla"),
|
|
|
@ -37,6 +33,11 @@ internal class CliWorkplaceKtTest {
|
|
|
|
@BeforeAll
|
|
|
|
@BeforeAll
|
|
|
|
@JvmStatic
|
|
|
|
@JvmStatic
|
|
|
|
internal fun beforeAll() {
|
|
|
|
internal fun beforeAll() {
|
|
|
|
|
|
|
|
val printOnlyProv = Prov.newInstance(PrintOnlyProcessor())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mockkObject(Prov)
|
|
|
|
|
|
|
|
every { Prov.newInstance(any(), any(), any(), any(), ) } returns printOnlyProv
|
|
|
|
|
|
|
|
|
|
|
|
mockkStatic(::local)
|
|
|
|
mockkStatic(::local)
|
|
|
|
every { local() } returns printOnlyProv
|
|
|
|
every { local() } returns printOnlyProv
|
|
|
|
|
|
|
|
|
|
|
@ -47,7 +48,7 @@ internal class CliWorkplaceKtTest {
|
|
|
|
every { getConfig("testconfig.yaml") } returns testConfig
|
|
|
|
every { getConfig("testconfig.yaml") } returns testConfig
|
|
|
|
|
|
|
|
|
|
|
|
mockkStatic(Prov::provisionWorkplace)
|
|
|
|
mockkStatic(Prov::provisionWorkplace)
|
|
|
|
every { any<Prov>().provisionWorkplace(any(), any(), any(), any(), any(), cmd) } returns ProvResult(
|
|
|
|
every { any<Prov>().provisionWorkplace(any(), any(), any(), any(), any(), any()) } returns ProvResult(
|
|
|
|
true,
|
|
|
|
true,
|
|
|
|
cmd = "mocked command"
|
|
|
|
cmd = "mocked command"
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -59,6 +60,7 @@ internal class CliWorkplaceKtTest {
|
|
|
|
@AfterAll
|
|
|
|
@AfterAll
|
|
|
|
@JvmStatic
|
|
|
|
@JvmStatic
|
|
|
|
internal fun afterAll() {
|
|
|
|
internal fun afterAll() {
|
|
|
|
|
|
|
|
unmockkObject(Prov)
|
|
|
|
unmockkStatic(::local)
|
|
|
|
unmockkStatic(::local)
|
|
|
|
unmockkStatic(::remote)
|
|
|
|
unmockkStatic(::remote)
|
|
|
|
unmockkStatic(::getConfig)
|
|
|
|
unmockkStatic(::getConfig)
|
|
|
@ -67,32 +69,14 @@ internal class CliWorkplaceKtTest {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
fun provision_workplace_locally() {
|
|
|
|
|
|
|
|
// when
|
|
|
|
|
|
|
|
main(arrayOf("-l", "testconfig.yaml"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// then
|
|
|
|
|
|
|
|
verify {
|
|
|
|
|
|
|
|
any<Prov>().provisionWorkplace(
|
|
|
|
|
|
|
|
WorkplaceType.MINIMAL,
|
|
|
|
|
|
|
|
null,
|
|
|
|
|
|
|
|
null,
|
|
|
|
|
|
|
|
testConfig.gitUserName,
|
|
|
|
|
|
|
|
testConfig.gitEmail,
|
|
|
|
|
|
|
|
cmd
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
fun provision_workplace_remotely() {
|
|
|
|
fun provision_workplace_remotely() {
|
|
|
|
|
|
|
|
|
|
|
|
// when
|
|
|
|
// when
|
|
|
|
main(arrayOf("-i", "-r", "host123", "-u", "user123", "testconfig.yaml"))
|
|
|
|
main(arrayOf("-i", "-r", "host123.xyz", "-u", "user123", "testconfig.yaml"))
|
|
|
|
|
|
|
|
|
|
|
|
// then
|
|
|
|
// then
|
|
|
|
verify { remote("host123", "user123", Secret("sec"), any()) }
|
|
|
|
verify { remote("host123.xyz", "user123", Secret("sec"), any()) }
|
|
|
|
verify {
|
|
|
|
verify {
|
|
|
|
any<Prov>().provisionWorkplace(
|
|
|
|
any<Prov>().provisionWorkplace(
|
|
|
|
WorkplaceType.MINIMAL,
|
|
|
|
WorkplaceType.MINIMAL,
|
|
|
@ -100,7 +84,7 @@ internal class CliWorkplaceKtTest {
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
testConfig.gitUserName,
|
|
|
|
testConfig.gitUserName,
|
|
|
|
testConfig.gitEmail,
|
|
|
|
testConfig.gitEmail,
|
|
|
|
cmd
|
|
|
|
any() // todo should be: cmd , but needs to be fixed
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|