Class FlatInteraction
- java.lang.Object
-
- de.telekom.test.bddwebapp.interaction.FlatInteraction
-
- Direct Known Subclasses:
ScenarioInteraction,StoryInteraction
public class FlatInteraction extends Object
Save the data flat for the test execution.If data is stored in this interaction, the values from maps and lists are stored recursively too. The following examples illustrate this: - remember("key", "value") = ["key", "value"] - remember("key.key", "value") = ["key.key", "value"] - remember("key", ["key": "value"]) = ["key": ["key": "value"], "key.key", "value"] - remember("key", [["key": "value"]] = ["key": ["value"], "key[0].key", "value"] Further examples can be found in @see FlatInteractionSpec.
The advantage of this approach is the safe and fast availability of the test data, but be careful when saving large and deep maps.
- Author:
- Daniel Keiss <daniel.keiss@telekom.de>
Copyright (c) 2022 Daniel Keiss, Deutsche Telekom IT GmbH This file is distributed under the conditions of the Apache License, Version 2.0. For details see the file license on the toplevel.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Object>contextstatic StringLIST_ITEM_FORMATstatic StringOBJECT_KEY_SEPARATOR
-
Constructor Summary
Constructors Constructor Description FlatInteraction()
-
Method Summary
All Methods Instance Methods Concrete Methods Default Methods Modifier and Type Method Description default voidclear(Enum key)default voidclear(String key)Map<String,Object>getContext()voidlogAllPossibleKeysWithType()Be careful with this method.voidlogAllPossibleKeysWithValue()Be careful with this method.default <S> Srecall(Enum key)Get some data in the interaction context.<S> Srecall(String key)Get some data in the interaction context.<S> SrecallByHierarchy(String key)Get the value from a complex type by reflection, even in hierarchical objects.default <S> List<S>recallList(Enum key)default <S> List<S>recallList(String key)default <S> List<S>recallListOrCreateNew(Enum key)default <S> List<S>recallListOrCreateNew(String key)default <S> Map<String,S>recallMap(Enum key)default <S> Map<String,S>recallMap(String key)default <S> Map<String,S>recallMapOrCreateNew(Enum key)default <S> Map<String,S>recallMapOrCreateNew(String key)default <S> SrecallNotNull(Enum key)default <S> SrecallNotNull(String key)default <S> SrecallObject(Enum objectKey, String attributeKey)default <S> SrecallObject(String objectKey, String attributeKey)default <S> SrecallObjectNotNull(Enum objectKey, String attributeKey)default <S> SrecallObjectNotNull(String objectKey, String attributeKey)default voidremember(Enum key, Object value)Store some data in the interaction context for later use.voidremember(String key, Object value)Store some test data in the interaction context for later use.default voidrememberObject(Enum entityKey, String objectKey, Object value)default voidrememberObject(Enum entityKey, Map<String,Object> object)default voidrememberObject(String entityKey, String objectKey, Object value)default voidrememberObject(String entityKey, Map<String,Object> object)default <S> voidrememberToList(Enum key, S value)default <S> voidrememberToList(String key, S value)voidstartInteraction()voidstopInteraction()
-
-
-
Method Detail
-
startInteraction
public void startInteraction()
-
stopInteraction
public void stopInteraction()
-
remember
public void remember(String key, Object value)
Store some test data in the interaction context for later use. Saves every key on every hierarchy as individual objects for lists and maps. Be careful when saving very large and deep maps as this approach increases the amount of data exponentially!
-
recall
public <S> S recall(String key)
Get some data in the interaction context.
-
recallByHierarchy
public <S> S recallByHierarchy(String key)
Get the value from a complex type by reflection, even in hierarchical objects. In some way the opposite way of the remember operation.
-
logAllPossibleKeysWithValue
public void logAllPossibleKeysWithValue()
Be careful with this method. The log can get very large. Use only for debugging purposes!
-
logAllPossibleKeysWithType
public void logAllPossibleKeysWithType()
Be careful with this method. The log can get very large. Use only for debugging purposes!
-
remember
public default void remember(Enum key, Object value)
Store some data in the interaction context for later use. Use enum as key.
-
recall
public default <S> S recall(Enum key)
Get some data in the interaction context. Use enum as key.
-
recallNotNull
public default <S> S recallNotNull(String key)
-
recallNotNull
public default <S> S recallNotNull(Enum key)
-
rememberObject
public default void rememberObject(String entityKey, String objectKey, Object value)
-
recallObjectNotNull
public default <S> S recallObjectNotNull(String objectKey, String attributeKey)
-
rememberToList
public default <S> void rememberToList(String key, S value)
-
rememberToList
public default <S> void rememberToList(Enum key, S value)
-
clear
public default void clear(String key)
-
clear
public default void clear(Enum key)
-
-