Skip to content

Commit 91c604b

Browse files
committed
Add utils to ease configuring ApplicationContext
1 parent 00cca37 commit 91c604b

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.utbot.framework.context.utils
2+
3+
import org.utbot.framework.context.ApplicationContext
4+
import org.utbot.framework.context.ConcreteExecutionContext
5+
import org.utbot.fuzzing.JavaValueProvider
6+
7+
fun ApplicationContext.transformConcreteExecutionContext(
8+
transformer: (ConcreteExecutionContext) -> ConcreteExecutionContext
9+
) = object : ApplicationContext by this {
10+
override fun createConcreteExecutionContext(
11+
fullClasspath: String,
12+
classpathWithoutDependencies: String
13+
): ConcreteExecutionContext = transformer(
14+
this@transformConcreteExecutionContext.createConcreteExecutionContext(
15+
fullClasspath, classpathWithoutDependencies
16+
)
17+
)
18+
}
19+
20+
fun ApplicationContext.transformValueProvider(
21+
transformer: (JavaValueProvider) -> JavaValueProvider
22+
) = transformConcreteExecutionContext { it.transformValueProvider(transformer) }
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.utbot.framework.context.utils
2+
3+
import org.utbot.framework.context.ConcreteExecutionContext
4+
import org.utbot.framework.context.JavaFuzzingContext
5+
import org.utbot.framework.plugin.api.ClassId
6+
import org.utbot.fuzzer.IdentityPreservingIdGenerator
7+
import org.utbot.fuzzing.JavaValueProvider
8+
import org.utbot.instrumentation.ConcreteExecutor
9+
import org.utbot.instrumentation.instrumentation.execution.UtConcreteExecutionResult
10+
import org.utbot.instrumentation.instrumentation.execution.UtExecutionInstrumentation
11+
12+
fun ConcreteExecutionContext.transformJavaFuzzingContext(
13+
transformer: (JavaFuzzingContext) -> JavaFuzzingContext
14+
) = object : ConcreteExecutionContext by this {
15+
override fun tryCreateFuzzingContext(
16+
concreteExecutor: ConcreteExecutor<UtConcreteExecutionResult, UtExecutionInstrumentation>,
17+
classUnderTest: ClassId,
18+
idGenerator: IdentityPreservingIdGenerator<Int>
19+
): JavaFuzzingContext = transformer(
20+
this@transformJavaFuzzingContext.tryCreateFuzzingContext(concreteExecutor, classUnderTest, idGenerator)
21+
)
22+
}
23+
24+
fun ConcreteExecutionContext.transformValueProvider(
25+
transformer: (JavaValueProvider) -> JavaValueProvider
26+
) = transformJavaFuzzingContext { it.transformValueProvider(transformer) }
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.utbot.framework.context.utils
2+
3+
import org.utbot.framework.context.JavaFuzzingContext
4+
import org.utbot.fuzzing.JavaValueProvider
5+
6+
fun JavaFuzzingContext.transformValueProvider(
7+
transformer: (JavaValueProvider) -> JavaValueProvider
8+
) = object : JavaFuzzingContext by this {
9+
override val valueProvider: JavaValueProvider =
10+
transformer(this@transformValueProvider.valueProvider)
11+
}
12+
13+
fun JavaFuzzingContext.withValueProvider(
14+
valueProvider: JavaValueProvider
15+
) = transformValueProvider { it.with(valueProvider) }

0 commit comments

Comments
 (0)