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) 2020 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)Get some data in the interaction context.default <S> SrecallNotNull(String key)Get some data in the interaction context.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!- Parameters:
key- interaction keyvalue- interaction value
-
recall
public <S> S recall(String key)
Get some data in the interaction context.- Type Parameters:
S- type for value from interaction context- Parameters:
key- interaction key- Returns:
- value from 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.- Type Parameters:
S- type for value from interaction context- Parameters:
key- interaction key- Returns:
- value from interaction context
-
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.- Parameters:
key- interaction keyvalue- interaction value
-
recall
public default <S> S recall(Enum key)
Get some data in the interaction context. Use enum as key.- Type Parameters:
S- type for value from interaction context- Parameters:
key- interaction key- Returns:
- value from interaction context
-
recallNotNull
public default <S> S recallNotNull(String key)
Get some data in the interaction context. Throw assertion error if value is not found.- Type Parameters:
S- type for value from interaction context- Parameters:
key- interaction key- Returns:
- value from interaction context
-
recallNotNull
public default <S> S recallNotNull(Enum key)
Get some data in the interaction context. Throw assertion error if value is not found.- Type Parameters:
S- type for value from interaction context- Parameters:
key- interaction key- Returns:
- value from interaction context
-
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)
-
-