Skip to content

Commit

Permalink
✨ : add resource to expose settings
Browse files Browse the repository at this point in the history
  • Loading branch information
cdubuisson committed Apr 9, 2020
1 parent 094f05a commit 1a6213f
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 95 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package io.codeka.gaia.settings.controller

import io.codeka.gaia.settings.bo.Settings
import io.codeka.gaia.settings.repository.SettingsRepository
import org.springframework.security.access.annotation.Secured
import org.springframework.web.bind.annotation.*

/**
* The controller for the settings management
*/
@RestController
@RequestMapping("/api/settings")
@Secured("ROLE_ADMIN")
class SettingsRestController(
private val settings: Settings,
private val settingsRepository: SettingsRepository) {

@GetMapping
fun getSettings() = settings

@PutMapping
fun saveSettings(@RequestBody settings: Settings) {
// update global settings bean
this.settings.externalUrl = settings.externalUrl
this.settings.envVars = settings.envVars
// saving the data
settingsRepository.save()
}

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package io.codeka.gaia.settings.controller

import io.codeka.gaia.settings.bo.Settings
import io.codeka.gaia.settings.bo.Settings.EnvVar
import io.codeka.gaia.settings.repository.SettingsRepository
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.InjectMocks
import org.mockito.Mock
import org.mockito.Mockito.*
import org.mockito.junit.jupiter.MockitoExtension

@ExtendWith(MockitoExtension::class)
class SettingsRestControllerTest {

@Mock
lateinit var settings: Settings

@Mock
lateinit var settingsRepository: SettingsRepository

@InjectMocks
lateinit var controller: SettingsRestController

@Test
fun `getSettings() should return settings`() {
// when
val result = controller.getSettings()

// then
assertThat(result)
.isNotNull
.isEqualTo(settings)
}

@Test
fun `saveSettings() should register the settings`() {
// given
val editedSettings = Settings()
editedSettings.externalUrl = "edited"
val envVar = EnvVar()
envVar.name = "test"
envVar.value = "value"
editedSettings.envVars = listOf(envVar)

// when
controller.saveSettings(editedSettings)

// then
verify(settings).externalUrl = editedSettings.externalUrl
verify(settings).envVars = editedSettings.envVars
verify(settingsRepository, times(1)).save()
verifyNoMoreInteractions(settingsRepository)
}

}

0 comments on commit 1a6213f

Please sign in to comment.