Closed andrea-dintino closed 6 months ago
Since the goal is always the creation of an array of dictionaries, the statements should read:
When I create the random array with 'number' dictionaries in 'identities' where 'country' is different
When I create the random array with 'number' dictionaries in 'identities' where 'country' is equal to 'myCountry'
Bump, this should be relatively easy to implement
further analysis: this will be solved by conditioned foreach:
Can be done with:
Given I have a 'string array' named 'identities'
Given I have a 'number' named 'number'
Given I have a 'number' named '1'
Given I have a 'string' named 'myCountry'
# equal country:
# * create an array with all the country equal to mycountry
# * pick 'number' objects from above array
When I create the 'string array' named 'myCompleteCountryArray'
Foreach 'el' in 'identities'
When I pickup from path 'el.country'
If I verify 'country' is equal to 'myCountry'
When I copy 'el' in 'myCompleteCountryArray'
EndIf
When I remove 'country'
Endforeach
When I create random dictionary with 'number' random objects from 'myCompleteCountryArray'
and I rename 'random dictionary' to 'myCountryArray'
# different country:
# * create an array to remember countries already seen
# * loop from 0 to 'number' with step '1'
# * pick a random element
# * if el.country is in 'countries' then number++ to perform one more loop
# * if el.country not in 'countries' then add 'country' in 'countries' and 'random_object' in 'myMixedCountry'
When I create the 'string array' named 'myMixedArray'
When I create the 'string array' named 'countries'
When I create the 'number array' named 'indexes'
Foreach 'index' in sequence from '1' to 'number' with step '1'
When I copy 'index' in 'indexes'
When I pick random object in 'identities'
and I pickup from path 'random_object.country'
If I verify 'country' is not found in 'countries'
When I move 'random_object' in 'myMixedArray'
and I move 'country' in 'countries'
EndIf
If I verify 'country' is found in 'countries'
When I remove 'random_object'
and I remove 'country'
and I create result of 'number' + '1'
and I remove 'number'
and I rename 'result' to 'number'
# Then print the string 'found in countries'
EndIf
Endforeach
Then print 'myMixedArray'
Then print 'myCountryArray'
The only change to the data is to add
{
"1": 1
}
needed for the second loop
TO be noted: The first loop can also be done as the second one by checking that country is equal to mycountry instead of in countries.
Shall we close this one?
yes! 🐭
Something in line with the create random dictionary statemet that allows for conditions like:
input:
Possible output: