diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHost.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHost.kt index 367ad21..fa51e38 100644 --- a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHost.kt +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHost.kt @@ -25,24 +25,11 @@ open class KnownHost protected constructor(val hostName: String, val hostKeys: L ) @JvmStatic - protected val values = listOf(KnownHost.GITHUB, KnownHost.GITLAB) + protected val values = listOf(GITHUB, GITLAB) fun values(): List { return values } - - @JvmStatic - fun valueOf(value: String): KnownHost = valueOf(value, KnownHost.values) - - @JvmStatic - protected fun valueOf(value: String, valueList: List): KnownHost { - for (type in valueList) { - if (value.uppercase().equals(type.hostName)) { - return type - } - } - throw RuntimeException("No KnownHost found for value: $value") - } } } diff --git a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostService.kt b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostService.kt index 72ccaac..77e6e0f 100644 --- a/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostService.kt +++ b/src/main/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostService.kt @@ -4,7 +4,7 @@ import org.domaindrivenarchitecture.provs.framework.core.Prov import org.domaindrivenarchitecture.provs.framework.ubuntu.keys.base.addKnownHost -fun Prov.addKnownHosts(knownHosts: List = defaultKnownHosts) = task { +fun Prov.addKnownHosts(knownHosts: List = KnownHost.values()) = task { for (knownHost in knownHosts) { with(knownHost) { addKnownHost(hostName, hostKeys, verifyKeys = true) diff --git a/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostTest.kt b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostTest.kt index b357033..ddae547 100644 --- a/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostTest.kt +++ b/src/test/kotlin/org/domaindrivenarchitecture/provs/desktop/domain/KnownHostTest.kt @@ -5,7 +5,9 @@ import org.domaindrivenarchitecture.provs.framework.ubuntu.install.base.aptInsta import org.domaindrivenarchitecture.provs.framework.ubuntu.keys.base.KNOWN_HOSTS_FILE import org.domaindrivenarchitecture.provs.test.defaultTestContainer import org.domaindrivenarchitecture.provs.test.tags.ContainerTest +import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test class KnownHostTest { @@ -25,5 +27,28 @@ class KnownHostTest { // then assertTrue(res.success) } + + + // Subclass of KnownHost for test knownHostSubclass_includes_additional_host + class KnownHostsSubclass(hostName: String, hostKeys: List): KnownHost(hostName, hostKeys) { + + companion object { + val ANOTHER_HOST = KnownHostsSubclass("anotherhost.com", listOf("key1")) + + fun values(): List { + return values + ANOTHER_HOST + } + } + } + + @Test + fun knownHostSubclass_includes_additional_host() { + // when + val hosts = KnownHostsSubclass.values() + + // then + assertTrue(hosts.size > 1) + assertEquals("key1", hosts.last().hostKeys[0]) + } }