You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2023/05/13 20:02:16 UTC

[jmeter] branch master updated: test: add test for overriding FunctionProperty value while test is runing

This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git


The following commit(s) were added to refs/heads/master by this push:
     new bce4e6996d test: add test for overriding FunctionProperty value while test is runing
bce4e6996d is described below

commit bce4e6996d5bee16ec0642fd66d046db85f78d5b
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Sat May 13 22:56:01 2023 +0300

    test: add test for overriding FunctionProperty value while test is runing
    
    Previously, it was possible to override FunctionProperty value
    when the test is running with #setObjectValue.
    It is not clear what was the use case, but the possibility was there.
    
    So here's a test so we don't accidentally break that when removing
    FunctionProperty caching.
---
 .../testelement/property/FunctionPropertyTest.kt   | 60 ++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt b/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt
new file mode 100644
index 0000000000..eddf700021
--- /dev/null
+++ b/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.testelement.property
+
+import org.apache.jmeter.engine.util.CompoundVariable
+import org.apache.jmeter.threads.JMeterContextService
+import org.apache.jmeter.threads.JMeterVariables
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Test
+
+class FunctionPropertyTest {
+    @Test
+    fun `override value when running`() {
+        JMeterContextService.getContext().apply {
+            variables = JMeterVariables().apply {
+                put("test_variable", "1")
+            }
+        }
+        val p = FunctionProperty(
+            "test",
+            CompoundVariable("test_variable=\${test_variable}").function
+        )
+        p.isRunningVersion = true
+
+        Assertions.assertEquals("test_variable=1", p.stringValue, "function should read value from the variables")
+
+        p.objectValue = "overridden with setObjectValue"
+
+        Assertions.assertEquals(
+            "overridden with setObjectValue",
+            p.stringValue,
+            "function should read value passed with setObjectValue"
+        )
+
+        p.recoverRunningVersion(null)
+
+        JMeterContextService.getContext().variables.put("test_variable", "2")
+
+        Assertions.assertEquals(
+            "test_variable=2",
+            p.stringValue,
+            "function should read value from the variables after recoverRunningVersion"
+        )
+    }
+}