Skip to content

Commit fba0517

Browse files
committed
adding PUT-DELETE test
1 parent 1947085 commit fba0517

4 files changed

Lines changed: 128 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package bar.examples.it.spring.cleanupuuid
2+
3+
import org.springframework.boot.SpringApplication
4+
import org.springframework.boot.autoconfigure.SpringBootApplication
5+
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
6+
import org.springframework.http.ResponseEntity
7+
import org.springframework.web.bind.annotation.*
8+
import java.util.UUID
9+
10+
11+
@SpringBootApplication(exclude = [SecurityAutoConfiguration::class])
12+
@RequestMapping(path = ["/api/resources"])
13+
@RestController
14+
open class CleanUpUUIDApplication {
15+
16+
companion object {
17+
@JvmStatic
18+
fun main(args: Array<String>) {
19+
SpringApplication.run(CleanUpUUIDApplication::class.java, *args)
20+
}
21+
22+
private val data = mutableMapOf<UUID, String>()
23+
24+
fun reset(){
25+
data.clear()
26+
}
27+
28+
fun numberExistingData() = data.size
29+
}
30+
31+
32+
@PostMapping(path = [""])
33+
open fun post(): ResponseEntity<CleanUpUUIDDto> {
34+
val id = UUID.randomUUID()
35+
data[id] = "Data for $id"
36+
return ResponseEntity.status(201).body(CleanUpUUIDDto(id))
37+
}
38+
39+
40+
@PutMapping(path = ["/{id}"])
41+
open fun put(
42+
@PathVariable("id") id: UUID
43+
): ResponseEntity<Any> {
44+
45+
data[id] = "Data for $id"
46+
return ResponseEntity.status(200).build()
47+
}
48+
49+
@DeleteMapping(path = ["/{id}"])
50+
open fun delete(@PathVariable("id") id: UUID): ResponseEntity<String> {
51+
52+
if(!data.containsKey(id)){
53+
return ResponseEntity.status(404).build()
54+
}
55+
56+
data.remove(id)
57+
58+
return ResponseEntity.status(204).build()
59+
}
60+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package bar.examples.it.spring.cleanupuuid
2+
3+
import java.util.UUID
4+
5+
open class CleanUpUUIDDto(
6+
7+
var id : UUID? = null
8+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package bar.examples.it.spring.cleanupuuid
2+
3+
import bar.examples.it.spring.SpringController
4+
import bar.examples.it.spring.cleanupcreate.CleanUpDeleteApplication
5+
6+
class CleanUpUUIDController : SpringController(CleanUpUUIDApplication::class.java)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package org.evomaster.core.problem.rest.cleanupuuid
2+
3+
import bar.examples.it.spring.cleanupuuid.CleanUpUUIDApplication
4+
import bar.examples.it.spring.cleanupuuid.CleanUpUUIDController
5+
import org.evomaster.core.problem.enterprise.SampleType
6+
import org.evomaster.core.problem.rest.IntegrationTestRestBase
7+
import org.evomaster.core.problem.rest.data.RestCallResult
8+
import org.junit.jupiter.api.Assertions.*
9+
import org.junit.jupiter.api.BeforeAll
10+
import org.junit.jupiter.api.BeforeEach
11+
import org.junit.jupiter.api.Test
12+
import java.util.UUID
13+
14+
class CleanUpUUIDTest: IntegrationTestRestBase() {
15+
16+
17+
companion object {
18+
@BeforeAll
19+
@JvmStatic
20+
fun init() {
21+
initClass(CleanUpUUIDController())
22+
}
23+
}
24+
25+
@BeforeEach
26+
fun initializeTest(){
27+
CleanUpUUIDApplication.reset()
28+
recreateInjectorForBlack(listOf("--blackBoxCleanUp","true"))
29+
}
30+
31+
32+
@Test
33+
fun testPutDelete() {
34+
35+
assertEquals(0, CleanUpUUIDApplication.numberExistingData())
36+
37+
val pirTest = getPirToRest()
38+
39+
val id = UUID.randomUUID().toString()
40+
41+
val put = pirTest.fromVerbPath("put", "/api/resources/$id")!!
42+
43+
val x = createIndividual(listOf(put), SampleType.RANDOM)
44+
val resDel = x.evaluatedMainActions()[0].result as RestCallResult
45+
assertEquals(200, resDel.getStatusCode())
46+
47+
assertEquals(1, x.evaluatedMainActions().size)
48+
assertEquals(1, x.individual.seeMainExecutableActions().size)
49+
assertEquals(1, x.individual.seeCleanUpActions().size)
50+
51+
//delete should had been automatically added
52+
assertEquals(0, CleanUpUUIDApplication.numberExistingData())
53+
}
54+
}

0 commit comments

Comments
 (0)